Java碎片化学习-语法基础
最后更新于:2022-01-24
Java的数据类型分为2大类:
- 基本数据类型
- 引用数据类型
1.1 Java 8种基本数据类型
Java 8种基本数据类型可以分为3类:
- 数字型:short,int,long,float,double
- 字符:byte,char
- 布尔:boolean
数据类型根据【存储字节数】和【是否含有符号】,具有不同的取值范围
类型 | 存储字节大小 | 最小值 | 最大值 | 默认值 |
---|---|---|---|---|
byte | 8 | -128 | +127 | 0 |
char | 16 | 0 | +65535 | '\u0000' |
short | 16 | -32768 | +32787 | 0 |
int | 32 | -2147483648 | +214783647 | 0 |
long | 64 | -9,223,372,036,854,775,808 | +9,223,372,036,854,775,807 | 0L |
float | 32 | 1.4 E-45 | 3.402,823,5 E+38 | 0.0f |
double | 64 | 4.9 E-324 | 1.797,693,134,862,315,7 E+308 | 0.0d |
boolean | - | - | - | false |
使用Java基本数据类型的常见错误:
- 内存溢出错误
- 赋值类型错误
1.2 Java引用数据类型
1.2.1 字符串
Java字符串属于引用数据类型。
字符串是由【零个】或者【多个字符】组成的【有限序列】。
创建字符串
以String
类型引导的变量,对变量记性字符串引用类型赋值,如
String name = "";
创建多行字符串
使用三引号来创建多行字符串,也叫【文本块】,如:
String str = """ 你好
我好
大家好
"""
三引号引导的文本块时,三引号要与所包裹的字符串分行书写,否则语法错误
字符串拼接
使用加法符号+对字符串进行拼接操作
只读特性
字符串属于只读的量,拼接出来的字符串,也属于创建了新的字符串对象,而非改变原有的对象
1.2.2 数组
数组是相同类型的数据,按照顺序组成的一种引用数据类型。
数组的声明
两种方式声明一个Java数组:
- 方括号在数据类型后,DataType[] arrayName;
- 方括号在数组名称后,DataType arrayName[];
DataType是数组要存放元素的数据类型,比如基本数据类型,arrayName是数组名称,遵守变量命名规范
数组的创建
数组的创建,需要先声明数组变量 ,然后用new关键字创建数组
DataType[] arrayName;arrayName = new DataType[数组长度];
也可以
DataType[] arrayName = new DataType[数组长度];
数组的初始化
数组创建后,所有元素都初始化为元素类型的默认值。
也可以通过【静态初始化】和【动态初始化】的方式,对数组元素进行初始化
数组元素的索引
通过数组名[下标]
的方式,对数组元素进行索引。
下标从0开始计数,且下标不能超过下标最大值
数组元素修改
通过索引数组元素,【动态初始化】的方式就能够修改数组元素
数组长度
数组对象内置属性length可以获取数组长度
arrayName.length //数组长度
因为数组具有一组元素,元素操作又基本相同,所以可以跟循环结构结合使用,使用循环对数组进行各种操作
多维数组
跟一维数组基本相同,只是下标数多了
2.Java运算符
运算表达式 由【操作数】和【操作符】组成。操作符也叫做运算符。
Java的运算符号有6大类:
- 算术运算符
- 关系运算符
- 逻辑运算符
- 赋值运算符
- 位运算符
- 其他运算符
2.1 算术运算符
算术运算符包括5类运算,7个运算符
- 加: + ++
- 减:- --
- 乘:*
- 除:/
- 余:%
2.2 关系运算符
关系运算,也是比较运算,包括3类运算,6个运算符
- 等于/不等于 ==/!=
- 大于/大于等于 >/>=
- 小于/小于等于 </<=
大于、大于等于,小于,小于等于,比较的只能是基本数据类型,而等于,不等于既可以比较基本数据类型,也可以比较引用数据类型
2.3 逻辑运算符
逻辑运算就是【与】【或】【非】的计算
- 逻辑【与】:&&,当且仅当两个操作数都为真,条件才为真
- 逻辑【或】:||,有一个为真,条件就为真
- 逻辑【非】:!,反转逻辑状态
逻辑运算有个短路运算行为,也就是只有在需要的时候才会进行第二个操作数的真假判断
2.4 赋值运算符
赋值运算有5个运算符:
- =
- +=
- -=
- *=
- /=
=是直接赋值,其他操作是左边操作数和右边操作数,先进行算术运算,然后赋值给左边操作数
2.5 位运算符
Java提供位运算符,主要有7个运算符
- 按位【与】:&,相对应位都是1,结果是1;否则结果是0
- 按位【或】:|,相对应位都是0,结果为0;否则结果是1
- 按位【异或】:,相对应位值相同,结果位0,否则位1
- 按位【取反】:~,按位反转操作数的每一位,0变为1,1变为0
- 左位移:<<,左操作数按位左移右操作数指定的位数
- 右位移:>>,左操作数按位右移右操作数指定的位数
- 零填充右移:>>>,左操作数按右操作数指定的位数右移,移动得到的空位补零
2.6 其他运算符
2.6.1 条件运算符
也叫三元运算符。
变量 = (布尔表达式)?值1:值2
如果布尔表达式为真,就把值1赋值给变量;如果布尔表达式为假,就把值2赋值给变量
2.6.2 instanceof运算符
类型比较运算。检查对象是否是一个特定的类型(类,接口)
boolean VarBoolean = Var instanceof Type(class,interface)
如果instanceof左侧的变量Var所指向的对象,是intanceof右侧的类或者接口的一个对象,那么结果VarBoolean为真,否则VarBoolean为假
2.7 运算符优先级
类别 | 操作数 | 关联性 |
---|---|---|
后缀操作 | () [] . | 左到右 |
一元操作 | ++ - ! ~ | 右到左 |
乘除余 | */% | 左到右 |
加减 | +- | 左到右 |
移位 | >> >>> << | 左到右 |
关系 | 大于> 大于等于>= 小于< 小于等于<= | 左到右 |
相等不等 | 等于== 不等于!= | 左到右 |
位与 | & | 左到右 |
位异或 | ^ | 左到右 |
位或 | | | 左到右 |
与 | && | 左到右 |
或 | | | 左到右 |
条件 | ?: | 右到左 |
赋值 | = += -= *= /= %= >>= <<= &= ^= |
3.Java表达式,返回值,语句块
程序源码由多条语句或者多个语句块组成。而语句由表达式和语句分隔符组成。
表达式由数字,运算符,数字分组符号(括号),自有变量,约束变量等能求得数值的有意义的排列组合构成。
约束变量是表达式中已经被指定的数值,而自有变量则可以在表达式之外另行指定数值
4.语句控制结构
4.1 条件语句
条件语句通过判断给定的条件的真假,来控制程序的执行。
4.1.1 if引导条件语句
由if引导的条件语句,实际上的逻辑是:对if后面括号内部的表达式进行计算,得到的表达式的结构如果不为0,或者不为false,就执行花括号内部的语句
这个表达式可以是:布尔值,布尔运算,条件表达式,最后返回一个真值,if对这个真值进行判断,不为0或者不为false,则执行花括号内部语句
if (表达式){ 当条件成立时,要执行的语句
}
if语句根据【特殊情况】【互斥情况】【多种情况】分为几种结构,包括if语句的嵌套
//特殊情况if (表达式){
要执行语句
}
//互斥情况
if (表达式){
要执行的语句
}
else {
要执行的语句
}
//多种情况
if (表达式) {
要执行的语句
}
else if (表达式) {
要执行的语句
}
else {
要执行的语句
}
//嵌套情况
if (表达式){
if (表达式) {
要执行的语句
}
else {
要执行的语句
}
}
4.1.2 switch引导条件语句
switch效果等同于if引导的【多种情况】,其结构如下:
switch (变量) { case 值1:
要执行的语句
break;
case 值2:
要执行的语句
break;
default:
要执行的语句;
}
switch后面的变量,其类型可以为:byte,short,int,char,或者String
4.2 循环语句
4.2.1 while循环
while (表达式){ 要执行的语句
}
while首先判断表达式的计算结果是否为true,如果是true,就执行花括号内部的语句,否则不执行语句
4.2.2 do...while循环
do{ 要执行的语句
}while(表达式)
无论while后面的表达式是否为true,都要先执行一下do花括号内部的语句
4.2.3 for循环
for (变量声明;条件表达式;迭代语句){ 要执行的语句
}
for循环属于一种遍历。在for后面的括号内部,由三个语句:
- 变量声明语句
- 条件表达式
- 迭代语句
for无条件遍历
fot(;;){ 要执行的语句
}
4.2.4 for each循环
4.2.5 break和continue打破循环
两者都可以用来打破循环,区别在于:
- break 跳出循环语句块,执行循环语句块以后的语句
- continue跳过当次循环要执行的语句,继续执行下一次循环
以上是 Java碎片化学习-语法基础 的全部内容, 来源链接: utcz.com/z/392076.html