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