- 自增自减运算符
- 比较(关系)运算符
- 三元运算符(三目表达式/三目运算)
- 位运算符
- 与(&)
- 或(|)
- 取反(~)
- 异或(^)
- 左移运算符()
- 无符合右移运算符(>>>)
属于算术运算符、一元运算符
自增运算符:++ 自减运算符:–
使用格式:写在变量名称之前,或者写在变量名称之后 单独使用,前++与后++没有区别,前–与后–没有区别; 混合使用,则有重大区别: 1.如果是【前++】,那么变量【立刻+1】,然后拿着结果进行使用,先加后用 2.如果是【后++】,那么首先使用变量本来的数值,【然后再让变量+1】,先用后加 3.如果是【前–】,那么变量【立刻-1】,然后拿着结果进行使用,先减后用 4.如果是【后–】,那么首先使用变量本来的数值,【然后再让变量-1】,先用后减
例如:与打印操作混合使用
int num1 = 20;
System.out.println(++num1);//21
System.out.println(num1);//21
int num2 = 30;
System.out.println(num2++);//30
System.out.println(num2);//31
比较(关系)运算符
“==” , “!=” , “>” , “=” , “ b ? a : b;
2.要么打印输出 System.out.println(a > b ? a : b);
3.要么作为方法的返回值
return a > b ? a : b;
位运算符与(&)、或(|)、异或(^)、取反(~)、左移()、无符号右移(>>>),位运算其实是针对二进制的运算。
几进制就是一个位上最多能表示几个数,如十进制的个位有0 - 9十个数字,八进制有0 -7八个数字,二进制我们自然想到就是0 - 1两个数字
我们编码中最小的单位是字节,一个字节有8位,每一位就是一个0或1,所以一个字节用二进制表示如下图:
同为1则为1,否则为0。 都是1则得1,否则得0。 也可以这样理解: 与运算中,相同位之间其实就是两个Boolean的运算,1代表true,0代表false,“与”就是“且”的意思,所以都是true则是true,否则是false。
4&7,如何计算?
首先我们需要把两个十进制的数转换成二进制 4 : 0000 0100 7 : 0000 0111
只要其中一个为1,则为1。 也可以这样理解: 1代表true,0代表false,既然是“或者”,那么只要其中一个是true,则为true,都是false,则为false。
5 | 9,如何计算?
先得到对应的二进制数: 5 : 0000 0101 9 : 0000 1001
将操作数的每位取反,就是把1变0,0变1
~15,如何计算
15的二进制:0000 1111
两位相同时返回0,不同时返回1。 也可以理解为:相同都是false,不同则是true。
7^15,如何计算
7: 0000 0111 15: 0000 1111
注意:移位运算遵循规则
- 低于Int类型(如byte、short、char)的操作数总是先自动类型转换为int类型后再移位。
- 对于Int类型的整数移位a>>b,当b≥32时,系统会用b对32求余(因为int类型只有32位),得到的结果才是真正移位的位数。例如,a>>33和a>>1的结果是完全一样的,而a>>32和a相同。
- 对于long类型的整数移位a>>b,当b≥64时,系统会用b对64求余(因为long类型是64位),得到的结果才是真正移位的位数。
- 进行移位运算不会改变操作数本身,只是得到了一个新的数值,而原来的操作数本身是不会改变的。
参考资料 点击查看运算符详解