-
基本的都有,不赘述
-
整数被0除将会产生异常,浮点数被0除将会得到无穷大或NaN结果
-
+=之类的相当于赋值,结果同= + 相同,但是在某些用法中有区别(碰到问题时再更新这里)
-
自增&自减运算符:++/-- 作为前缀,先自增/自减再运算(赋值);作为后缀时,先运算再赋值
int m = 2;
int n = 2;
int a = 2*++m; //now a is 6,m is 3
Int b = 2*n++; //now b is 4,n is 3
-
关系运算符、布尔运算符
-
&和&&,都是与,全true为true。但是&&带短路性质,即检测到false即停止判断为false,&必须全部验证完毕
-
位运算符:&(与)、^(异或)、|(或)、~(非),异或相异为true;<<(左移)>>(右移)当需要建立位模式屏蔽某些位时;>>>运算符将用0填充高位,>>运算符用符号位填充高位,没有<<<运算符。
运算符优先级
运算符 | 结合性 |
[].()(方法调用) | 从左到右 |
!、~、++、+、-、--、()(强制类型转换) new | 从右到左 |
*、/、% | 从左到右 |
+、- | 从左到右 |
<<、>>、<<< | 从左到右 |
<、<=、>、>=、instanceof | 从左到右 |
==、!= | 从左到右 |
& | 从左到右 |
^ | 从左到右 |
| | 从左到右 |
&& | 从左到右 |
|| | 从左到右 |
?: | 从右到左 |
=、+=、-=、*=、/=、&=、^=、|=、<<=、>>=、>>>= | 从右到左 |