- 算术运算符
一元运算符:- (取反)、++(自增1)、–(自减1)
这里要区分 a++ 和 ++a的区别
a++ a 在前头,先赋值再自增;
++a a 在后头,先自增再赋值;
二元运算符:+(加)、-(减)、(乘)、 /(除) 和 %(求余)
算术赋值运算符:+=(加赋值)、-=(减赋值)、=(乘赋值)、/=(除赋值) 和 %=(求余赋值)
a+ = 3; 相当于 a = a+3; - 关系运算符
==、 !=、 >、 <、 >= 和 <= - 逻辑运算符
!(逻辑非)、&(逻辑与)、|(逻辑或)、&&(短路与)、||(短路或)
& 和 && 的区别:
a&b:运算符两侧都需要判断,例如 a 运算了是 false,b 运算了是 true,这个等式最后输出 false
a&&b: 这种只要运算左侧就能判断这个等式的 true 或者 false 的结果,就不必运算右侧的了。例如 a 运算了是false,这个等式就直接输出 false 了,不用去执行右侧的 b,叫作短路与,能提高程序运行效率。 - 位运算符
位运算是以二进制为单位进行运算的,操作数和结果数都是整型数据。
ps: 无符号右移仅被允许用在 int 和 long 整型类型,如果用于 byte 或 short,在数据位移前,会转换成 int 类型之后再进行位移计算。 - 其他运算符
三元运算符:x:y?z - 运算符优先级
算术运算符 > 位运算符 > 关系运算符 > 逻辑运算符 > 赋值运算符
有小括号的优先级最高。