老生常談,運算符的優(yōu)先級,除了右結合的運算符之外,同級的運算符要按照從左到右的順序依次計算。
什么是右結合的運算符呢?
經常使用的賦值=,以及派生出來的復合賦值運算符,都是從右到左的運算順序,這就是右結合符號。不少參考書里都有個表,有的時候很多jb破書,炫耀很多一系列的運算符,弄一大堆在一個大……長串的表達式上,講解這個順序那個順序的,jb毛線用處都沒有,純粹就是占據字數的sb,不解釋,我把這些運算符的優(yōu)先級梳理記憶和總結下;
1、眾所周知,一般情況下有括號()就是級別最高的!先算括號里的,比如;
2、然后看表,最高級別的是數組下標【】、對象或者方法的調用 . 、方法的參數調用運算符(),這些都是從左到右的。
3、記住一點,正負號,非!,按位取反~,自增,自減,強制類型轉換,new這是一個級別的,從左到右。
4、然后是最熟悉的加減乘除,按照數學的規(guī)則,先乘除后加減,同級的按照順序,只不過這里多了個模運算%,和乘除一個級別的而已。也就是先乘除模,再加減而已。
5、然后是移位的,左移,右移,無符號右移是一個級別的。
6、關系運算符,也就是比較大小的,外加個instantof!一個級別的。
7、最后的判等==,和不等!=,很好理解,都是先算了,再判等吧……結合常識。
8、然后就是很好理解的;與>異或>或>雙與>雙或>三元,注意,三元運算符是從右到左的順序。其余的是左到右。細細的感覺下,就是這樣!
9、最后就是賦值類的包括復合的,也是從右到座的順序!
注意!java里是沒有逗號運算符的,在fou循環(huán)的表達式()中的逗號,起的是隔離的作用!