1.算数运算符:
-
+、-、*、/、%、++、--
2.赋值运算符:=
3.关系运算符:> ,< ,>= ,<= , ==, != ,instanceof(判断对象的类型是否是实例)
4.逻辑运算符:&&(and) 、||(or)、!(取反)、
5.位运算符:直接对整数类型二进制里的位进行操作
规则:低位补齐,高位不足则补零
先把值转换成二进制在进行后续操作
&:位与:同时为1才为1
任何数与0进行位与结果都为0
举个栗子:↓
int x=5,y=12,z; z=x&y; System.out.println(z); //5=(101)& 12=(1100) =100(4)
|:位或:有1就为1,都为0才=0
举个栗子:11 | 7 //11(1011)&7(111)=15(1111)
^:异或:相同为0,不同为1
举个栗子:11 ^ 7 //11(1011)^7(0111)=1100(12)
~:位非:单目运算符,按位取反
举个栗子:~10 //~1010=0101
位运算符的操作数只能是整型、字符型或变体
位移运算符:将操作数按某个方向指定移动
》》:右移位:右移1-2位相当于/2,整体右移,左边用原有标志位补充,右边超出部分舍弃
《《:左移位:左移2位相当于*2
》》》:无符号右移: 不管最高位的正负,整体右移,左边以0来补充,右边舍弃
举个栗子:↓ -5的二进制表示(负数以二进制补码形式存储) 1000 0000 0000 0101(原码) 1111 1111 1111 1010(反码) 1111 1111 0011 11101111 1011(补码) -5>>2:右移2位=1111 1110 -5>>>2:无符号右移2位=
6.条件运算符:三目运算符 ? :
7.扩展运算符:+=、-+、*=、/=
8.%取余数,也称为模运算