算数运算符
赋值运算符
符号: =
扩展:+= -+ *+ /+ %= 这些符号不改变数据本身的类型
n = 10;
n += (n++) + (++n);
结果:n = 32
比较运算符
== != < > <= >= instanceof
返回结果都是true或者false
逻辑运算符
&-与 |-或 !-非
&&-短路与 ||-短路或 ^-逻辑异或
逻辑运算符处理的都是true和false
区分&和&&:
b & (num++ > 0) 和 b && (num++ > 0)
1、相同点1:&与&&运算结果相同,
2、相同点2:符号左面是true时,二者都会执行符号右边的运算
3、不同点:符号左面是false时,&&不会执行右边的运算
区分|和||:
1、相同点1:|与||运算结果相同,
2、相同点2:符号左面是false时,二者都会执行符号右边的运算
3、不同点:符号左面是true时,|| 不会执行右边的运算
位运算符
要求不高
1、<< 左移---相当于*2; >> 右移---相当于/2(最高位正数补0,负数补1);>>>无符号右移(最高位怎么都补上0); ~ 取反;
2、最高效的2*8:2<<3
3、位运算符操作的都是整形的变量
老师有提到交换变量的方式,一般都用中间变量temp
三元运算符
(条件表达式)?运算1:运算2
如果条件表达式为true:运算后结果是表达式1,false则运算结果为表达式2
凡是可以使用三元运算符的地方,都可以改写成if…else,反之不行,如果同时能用,优先三元运算符
运算符的优先级
只需要记住,想要先算的,加上小括号就行了