a、算数运算符: + - * / %
b、赋值运算符: = += -= *= /= %= &= |=
c、关系运算符: < > <= >= == !=
d、逻辑运算符:&& || !
e、三目运算符:( ? :)
f、字符串连接:+
g、位运算
& 位都为1,结果才为1,否则结果为0
| 位只要有一个为1,那么结果就是1,否则就为0
^ 两个操作数的位中,相同则结果为0,不同则结果为1
~ 如果位为0,结果是1,如果位为1,结果是0
h、移位:
<< 左移运算符,将运算符左边的对象向左移动运算符右边指定的位数(在低位补0)
>> "有符号"右移运算符,将运算符左边的对象向右移动运算符右边指定的位数。使用符号扩展机制,也就是说,如果值为正,则在高位补0,如果值为负,则 在高位补1.
>>> "无符号"右移运算符,将运算符左边的对象向右移动运算符右边指定的位数。采用0扩展机制,也就是说,无论值的正负,都在高位补0.
(PS:x<<y 相当于 x*2y ;x>>y相当于x/2y,从计算速度上讲,移位运算要比算术运算快。如果x是负数,那么x>>>3没有什么算术意义,只有逻辑意义。)
运算符优先级:从左到右
[ ] ( ) ++ -- ! ~ instanceof * / % + - << >> >>> < > < = > = == != & ^ && || ? : op=