Java语法基础
文章目录
第一章:Java程序基础
一、jdk安装、环境变量配置
JAVA_HOME:对应java安装路径
二、Java基本语法
1.关键字
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0OEsBojy-1588727527531)(/home/smallseven/Documents/Java后端/Java核心基础/Java中的关键字.png)]
2.标识符
- 标识符的组成:
- 字母大小写
- 数字
- $和_
- 注意:
- 数字不能开头
- 不能使用关键字
- 区分大小写
3. 数据类型
3.1 基本数据类型
- 整形
- 浮点型
- 字符型
- 布尔型
类型名 | 字节大小 | 数值范围 |
---|---|---|
int | 4字节 | -2147483648 ~ 2147483647 |
short | 2字节 | -32768 ~ 32767 |
long | 8字节 | -9223372036854775808 ~ 9223372036854775807 |
byte | 1字节 | -128 ~ 127 |
float | 4字节 | - |
double | 8字节 | - |
char | 2字节 | 可表示ASCII和Unicode字符 |
boolean | JVM把Boolean表示为4字节整数 | - |
Notes:
- Java只定义了带符号的整型,因此最高位的bit表示符号位(0表示正数,1表示负数)
- 整形的默认类型为int,浮点型默认类型为double
- float代表但精度浮点型,double代表双精度浮点型数据
- float类型需要加上f或F后缀,long类型需要加上l或L后缀
- char类型使用单引号‘,字符串使用双引号”
- 定义变量使用var修饰符,编译器会自动推断数据类型 var i = new StringBuilder
3.2 引用数据类型
- 类
- 接口
- 数组
3.3 默认值
整形的默认值是:0
浮点型的默认值是:0.0
char的默认值:’\u0000’
boolean的默认值:false
引用数据类型的默认值:null
3.4 转义字符
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QgyglO7i-1588727527536)(/home/smallseven/.config/Typora/typora-user-images/image-20200428130452217.png)]
4.运算
4.1 运算符&优先级
优先级 | 运算符 | 结合性 |
---|---|---|
1 | () [] . | 从左到右 |
2 | ! ~ ++ – | 从右到左 |
3 | * / % | 从左到右 |
4 | + - | 从左到右 |
5 | << >> >>> | 从左到右 |
6 | < <= > >= instanceof | 从左到右 |
7 | == != | 从左到右 |
8 | & | 从左到右 |
9 | ^ | 从左到右 |
10 | | | 从左到右 |
11 | && | 从左到右 |
12 | || | 从左到右 |
13 | ?: | 从左到右 |
14 | = += -= *= /= %= &= |= ^= ~= <<= >>= >>>= | 从右到左 |
15 | , | 从右到左 |
Notes:
-
常量做运算时,先计算两个常量的结果,再判断该结果是否在变量类型的范围内
-
除法运算、取余运算,两个操作数是整数结果也会是整数,舍弃掉小数部分
-
自增自减运算,++n和–n先做加减再引用n,n++和n–先引用n在做加减
-
+=、-=,*=,/=,%=,&=,|=,^=,~=,<<=,>>=,>>>=相当于对变量自身做运算
-
整数运算存在范围限制,超出范围会产生溢出,溢出不会报错,但会得到一个错误的结果
-
浮点数不能做位运算和移位运算
-
整数运算在除数为0时会报错,而浮点数运算在除数为0时不会报错,但会返回几个特殊值:
- NaN表示Not a Number
- Infinity表示无穷大
- -Infinity表示负无穷大
-
布尔运算是一种短路运算,如果一个布尔运算的表达式能提前确定结果,则后续的计算不再执行,直接返回结果。
4.2 自增&自减运算
- 单独使用,自增自减运算结果相同
- 参与运算
- ++或–在前,先自增、自减运算后再参与运算
- ++或–在后,先参与运算再自增、自减
4.3 +=,-=,*=,/=,%=
这些运算包含类型转换
4.4 逻辑运算符
&,|,!,^,&&,||
- &运算(条件同时满足就为true,有一个条件不满足就为false)
- |运算(只要有一个条件不满足就为true,条件同时满足就为false)
- ^运算(异或,相同为false,不同为true)
- &&、||(短路运算)
4.5 移位运算
<<,>>,>>>,&,|,^,~
- &(按位与)
- |(按位或)
- ^(按位异或)
- ~(反码)
- <<(左移)
- >>(右移)
- >>>(无符号右移)
Notes:
- 对于byte、char、short类型的数据,左移后得到的是int类型
- a>>n,如果a的类型是byte、int、short,系统先计算出n%32的结果m,然后再计算a>>m
- a>>n,如果a是long类型数据,系统先计算出n%64的结果m,在计算a>>m
第二章:流程控制语句
一、顺序结构
按照代码的先后顺序执行
二、选择结构(分支结构)
2.1 if语句
- 第一种格式:
if (条件表达式){
语句体;
}
- 第二种格式:
if (条件表达式){
语句体;
}else{
语句体;
}
- 第三种格式:
if (条件表达式){
语句体;
}else if (条件表达式){
语句体;
}else{
语句体;
}
2.2 switch语句
switch (表达式){
case 值1:
语句体;
break;
case 值2:
语句体;
break;
default:
语句体;
break;
}
Notes:
- 表达式的值可以是byte、int、short、char
- JDK5.0之后可以使用枚举
- JDK7.0之后可以使用String
- case的值必须是常量,case的值不能有重复
- default可以省略,default可以放在任意位置
三、循环结构
3.1 for循环
for (初始化条件;条件判断语句;控制语句){
循环体;
}
3.2 while语句
while (条件判断语句){
循环体;
控制语句;
}
3.3 do…while语句
do {
循环体;
控制语句;
} while (条件判断语句)
四、跳转控制语句
- break,终止整个循环
- countinu,终止当前循环,进入下一次循环
- return,结束方法
第三章:数组
一、一维数组
定义形式:
数组类型[] 数组名 = new 数组类型[]{值1,值2,......,值n} // 数组定义方式一
数组类型[] 数组名 = {值1,值2,......,值n} // 数组定义方式二、简写