种类及总览
- 算数运算符
- 关系运算符
- 逻辑运算符
- 赋值运算符
- 位运算符
- 条件运算符
- 字符串连接运算符
- 其他运算符
算数运算符
- 运算符:+、-、*、/、%、++、–
- 重点掌握
- ++ 和 --++ 可以出现在变量前,也可以出现在变量后++
- 出现在变量后:会先做赋值运算,再自加一
- 出现在变量前:会先自加一,在做赋值运算
关系运算符
- 运算符:>、>=、<、<=、==、!=
- 规则
- 所有的关系运算符的运算结果都是布尔类型,不是true就是false,不可能有其他值
- 注
- = :赋值运算符
- == :关系运算符,判断是否相等
- 关系运算符中,如果有两个符号的话,两个符号之间不能有空格
逻辑运算符
-
运算符:&(逻辑与)、|(逻辑或)、!(逻辑非)、&&(短路与)、||(短路或)
-
注
- 逻辑运算符两边要求都是布尔类型
- 最后的运算结果也是布尔类型
- 对于逻辑 & 来讲,只有两边都是true,结果才是true,否则就是false
- 在不确定运算的先后顺序的时候,就可以加括号
- 对于逻辑 | ,只要有一边true,结果就是true
- 短路与&& 和逻辑与& 的运算结果没有任何区别,完全相同
- 短路与&& 会发生短路现象当使用短路与 && 的时候,左边的表达式为false的时候,右边的表达式不执行
- 效率高一点,因为逻辑与 & 不管左边的表达式是否true,右边的表达式都会执行
- 一般开发的时候,都使用短路与 && ,不过当出现两边的表达式都需要执行的时候,就使用逻辑与 &
- 什么时候使用 || —— 左边为true就不需要管右边表达式的时候
-
测试代码
public class Test {
public static void main(String[] args) {
System.out.println(true & true); //true
System.out.println(true & false); //false
System.out.println(false & false); //false
System.out.println(true && true); //true
System.out.println(true && false); //false
System.out.println(false && false); //false
}
}
赋值运算符
- 运算符:=、+=、-=、/=、*=、%=、^=、&=、|=、<<=、>>=
- 注
- 扩展赋值运算符在编写的时候,两个符号之间不能又空格
- 赋值运算符的右边优先级更高,先执行右边的表达式
- 右边表达式的内容执行完毕后,将内容给左边的“盒子”
- 重要的语法机制:使用扩展赋值运算符的时候,永远都不会改变运算结果类型
- x += 1; 等同于: x = byte(x = x + 1); —— 会损失精度
条件运算符
- 语法格式:布尔表达式?表达式1:表达式2
- 执行原理
- 布尔表达式的结果为true的时候,表达式1的执行结果作为整个表达式的结果
- 布尔表达式的结果为false的时候,表达式2的执行结果作为整个表达式的结果
字符串连接运算符
- 注
-
+ 在Java中有两个作用
- 求和 —— 当+两把都是数字的时候,求和
- 字符串拼接 —— 当+任意一边是字符串类型的时候
-
当一个表达式中有多个加号的时候,遵循自左向右的顺序执行,除非额外有小括号
-