Java基础学习笔记(一) - 基础语法
1.Java程序开发过程

编译: 是指将我们编写的Java源文件翻译成JVM认识的class文件,javac编译器会检查我们所写的程序是否有错误,有错误就会提示出来,如果没有错误就会编译成功。
运行:是指将编译好的class文件交给JVM去运行。
2.第一个Java程序Hello World
public class HelloWorld {
public static void main(String[] args){
System.out.println("hello world");
}
}
main方法:是程序的主方法,写法是固定格式不可以更改,main方法是程序的入口,JVM在运行程序的时候,都会从main方法这里开始执行。
3.程序注释
注释的作用是对代码解释说明。
//我是一个单行注释 /*
我是一个多行注释
我是一个多行注释
*/
4.关键字keywords
在程序中,有很多java语言已经定义好的单词,具有特殊含义,如public,class,static,void等。
5.标识符
标识符:在程序中我们自己定义的内容,如类的名字,方法的名字,变量的名字等。
命名规则(牢记):
- 标识符可以包含数字,字母,_(下划线),$(美元符号)。
- 标识符不能以数字开头。
- 标识符不可以和关键字重名。
命名规范:
- 类名规范:首字母大写,后面每个单词首字符大写(大驼峰式)。
- 方法名规范:首字符小写,后面每个单词首字母大写(小驼峰式)。
- 变量名规范:全部小写。
6.常量和变量
6.1 常量
在Java程序中固定不变。

6.2 变量
在Java程序中可以变化。
int num1 = 0
//定义变量的格式(三要素)
数据类型 变量名 = 数据值;
Java中要求一个变量每次只能保存一个数据,而且必须声明数据类型,如int(整型)。
基本数据类型:

引用数据类型(引用的是内存地址,不是实际的值):
类,数组,接口。
变量使用要求:
- 在同一个作用域,变量不可以重名。
- 定义的变量,不赋值不能使用。
6.3 变量和常量的运算

变量d赋值报错的原因是因为,a和b都为变量,编译器不确定是否超过byte的取值范围。
变量c没报错,常量1和2都是固定数值,计算结果也是固定的,没有超过byte的取值范围。
7.数据类型转换
7.1 自动转换
自动转换:在进行运算操作时将取值范围小的类型自动转换为取值范围大的类型。
转换规则:

public static void main(String[] args){
int a = 1;
float b = 1;
//运行结果为2.0
System.out.println(a + b);
}
7.2 强制转换
强制类型转换:主动将取值范围大的类型自动转换为取值范围小的类型。
转换格式:

public static void main(String[] args){
int a = 1;
byte b = (byte)a;
System.out.println(b);
}
强烈注意:
- 浮点转换整数时,小数点后被取消,可能造成数据损失精度。
- int转换short时失去两个字节,可能造成数据丢失。
8.运算符
8.1 算数运算符

+符号在遇到字符串时表示连接,拼接的含义。
8.2 赋值运算

注意:s+=1和s=s+1的区别(s为short类型)
s = s + 1 实际上执行了两次运算,一计算s+1的结果(结果为int),二将s+1的计算结果赋值给s(s为short类型,将int类型结果赋值给s会发生错误)。
s += 1 只运算一次,并带有强制转换的特点,也就是说s += 1就是 s = (short)(s+1)。
8.3比较运算符

8.4 逻辑运算符

逻辑运算的结果只有true和false。
8.5 三元运算符

计算方式:
- 表达式为true,结果1赋值给变量
- 表达式为false,结果2赋值给变量
public class HelloWorld {
public static void main(String[] args){
int a = (1==2 ? 100:200);
System.out.println(a);//200
}
}
9.Java中的方法
方法:将一个功能抽取出来,单独定义在一个方法内。
作用:实现代码复用,解决代码冗余。
9.1 方法的定义

- 位置:方法必须定义在类中,方法不能定义在另一个方法中。
- 返回值:return返回的类型必须和声明的返回值类型相同,否则编译失败。
9.2 方法的调用
方法定义完毕后,方法不会自己运行,必须被调用才能执行。
调用方式:
- 直接调用
- 赋值调用
- 输出语句调用
public class HelloWorld {
public static void main(String[] args){
method1();//直接调用
int x = method1();//赋值调用(必须有返回值才能使用)
System.out.println(method1());//输出语句调用
}
public static int method1(){
System.out.println("我是方法1");
return 1;
}
}
9.3 方法重载
含义:在同一个类中,允许存在多个同名方法,只要他们的参数列表(个数不同,类型不同,顺序不同)不同即可。
JVM在调用方法时会根据参数列表找到对应的方法执行。
public class HelloWorld {
public static void main(String[] args){
method1(1,2);
method1("1",2);
}
public static void method1(int a,int b){
System.out.println("我是方法1");
}
public static void method1(String a,int b){
System.out.println("我是方法1的重载");
}
}
10.流程控制
概述:控制程序执行顺序。
10.1 判断语句

从上到下的顺序执行,只执行一层,没有满足的条件则执行else。
10.2 选择语句

首先计算表达式的值,其次和case依次比较,一旦有对应的值,就会执行相应的语句,执行完毕break(break一定要写,否则程序会继续向下执行,直到选择语句结束)跳出,如果所有都不匹配则执行default。
10.3 循环语句
循环可以嵌套。


while(true)表示死循环。

for和while区别:
- for作用域的变量会在执行完毕后,自动销毁。while不会。
- 已知循环次数使用for,未知使用while。
10.4 跳出语句
- break:终止switch语句或循环。
- continue:结束本次循环,继续下一次循环。
11.数组
概念:数组就是存储数据的容器,数组中的数据类型一致。
11.1 创建数组
int[] arr1 = new int[3];
int[] arr2 = new int[]{1,2,3,4,5};
int[] arr3 = {1,2,3,4,5};
数组实际上是内存中的地址。
JVM的内存划分:

11.2 常用操作
- 访问:使用索引。arr[1](如果索引1不存在会导致数组越界,arr为null会导致数组空指针异常)。
- 遍历:使用for循环。

11.3 方法中使用数组
- 数组作为方法参数。(参数为基本类型时,传递的是数据值,为引用类型时,传递的是内存地址。)
- 数组作为方法返回值。(声明类型必须正确)
温馨提示
- 如果您对本文有疑问,请在评论部分留言,我会在最短时间回复。
- 如果本文帮助了您,也请评论关注,作为对我的一份鼓励。
- 如果您感觉我写的有问题,也请批评指正,我会尽量修改。
Java基础学习笔记(一) - 基础语法的更多相关文章
- Java Script 学习笔记 (一) 基础
1. 设置变量 const: 赋常量,不可更改. let :设置可更改变量. ES6 中推荐使用let 而不是var. Let 和var的区别 : let 将变量的作用域限定在当前{}中, var 定 ...
- Java学习笔记之---基础语法
Java学习笔记之---基础语法 一. Java中的命名规范 (一)包名 由多个单词组成时,所有字母小写(例如:onetwo) (二)类名和接口 由多个单词组成时,所有单词首字母大写(例如:OneTw ...
- Java基础学习笔记总结
Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...
- 尚学堂JAVA基础学习笔记
目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...
- Java基础学习笔记(一)
Java基础学习笔记(一) Hello World 基础代码学习 代码编写基础结构 class :类,一个类即一个java代码,形成一个class文件,写于每个代码的前端(注意无大写字母) XxxYy ...
- ASP.NET MVC 学习笔记-2.Razor语法 ASP.NET MVC 学习笔记-1.ASP.NET MVC 基础 反射的具体应用 策略模式的具体应用 责任链模式的具体应用 ServiceStack.Redis订阅发布服务的调用 C#读取XML文件的基类实现
ASP.NET MVC 学习笔记-2.Razor语法 1. 表达式 表达式必须跟在“@”符号之后, 2. 代码块 代码块必须位于“@{}”中,并且每行代码必须以“: ...
- Java IO学习笔记四:Socket基础
作者:Grey 原文地址:Java IO学习笔记四:Socket基础 准备两个Linux实例(安装好jdk1.8),我准备的两个实例的ip地址分别为: io1实例:192.168.205.138 io ...
- Java后端高频知识点学习笔记1---Java基础
Java后端高频知识点学习笔记1---Java基础 参考地址:牛_客_网 https://www.nowcoder.com/discuss/819297 1.重载和重写的区别 重载:同一类中多个同名方 ...
- MyBatis:学习笔记(1)——基础知识
MyBatis:学习笔记(1)--基础知识 引入MyBatis JDBC编程的问题及解决设想 ☐ 数据库连接使用时创建,不使用时就释放,频繁开启和关闭,造成数据库资源浪费,影响数据库性能. ☐ 使用数 ...
随机推荐
- FineReport - 项目连接Oracle数据库
FineReport项目连接Oracle数据库 1:打开模板设计器,单击[服务器],选择[定义数据连接]: 2:单击[+],选择[JDBC]; 3:数据库选择[Oracle],驱动器选择[oracle ...
- 在.net core wep项目中使用Session
第1步:添加包引用 Install-Package Microsoft.AspNetCore.Session 第2步:添加代码启用Session 在项目Startup.cs文件的ConfigureSe ...
- SpringMVC 三种异常处理方式
SpringMVC 三种异常处理方式 在 SpringMVC, SpringBoot 处理 web 请求时, 若遇到错误或者异常,返回给用户一个良好的错误信息比 Whitelabel Error Pa ...
- Jira更改工作流后,敏捷看板里无法显示sprint对应的问题列表
转自:http://blog.csdn.net/computerheart/article/details/68924295 Jira更改工作流后,敏捷看板里无法显示sprint对应的问题列表 原创 ...
- 模板汇总——ST(暂)
int Log[N]; struct ST { ], a[N]; void init(int n) { ]=-); i < N; i++) Log[i] = Log[i - ] + ((i &a ...
- jquery中的 $(function(){ .. }) 函数
2017-04-29 在讲解jquery中的 $(function(){ .. }) 函数之前,我们先简单了解下匿名函数.匿名函数的形式为:(function(){ ... }),又如 functio ...
- spring的嵌套事务
转自http://www.iteye.com/topic/35907 在所有使用 spring 的应用中, 声明式事务管理可能是使用率最高的功能了, 但是, 从我观察到的情况看, 绝大多数人并不能深刻 ...
- java中多线程执行时,为何调用的是start()方法而不是run()方法
Thead类中start()方法和run()方法的区别 1,start()用来启动一个线程,当调用start()方法时,系统才会开启一个线程,通过Thead类中start()方法来启动的线程处于就绪状 ...
- jsp页面直接输出了html代码
可能出现的情况: 1.修改web.xml中springMVC的过滤器路径如下: "/"与"/*区别" 其实/和/*都可以匹配所有的请求资源,但其匹配的优先顺序是 ...
- 下一个排列(Leetcode31)解读
本题代码来自Leetcode官方,个人对其理解后,生成自己的注解,以便更好的让读者理解.如有侵权,立即删除! public class Main31 { public static void main ...
