Java运算符优先级(转)
Java運(yùn)算符優(yōu)先級
?
| 序列號 | 符號 | 名稱 | 結(jié)合性(與操作數(shù)) | 目數(shù) | 說明 |
| 1 | . | 點(diǎn) | 從左到右 | 雙目 | ? |
| ( ) | 圓括號 | 從左到右 | ? | ? | |
| [ ] | 方括號 | 從左到右 | ? | ? | |
| 2 | + | 正號 | 從右到左 | 單目 | ? |
| - | 負(fù)號 | 從右到左 | 單目 | ? | |
| ++ | 自增 | 從右到左 | 單目 | 前綴增,后綴增 | |
| - - | 自減 | 從右到左 | 前綴減,后綴減 | ||
| ~ | 按位非/取補(bǔ)運(yùn)算 | 從右到左 | 單目 | ? | |
| ! | 邏輯非 | 從右到左 | 單目 | “!”不可以與“=”聯(lián)用 | |
| 3 | * | 乘 | 從左到右 | 雙目 | ? |
| / | 除 | 從左到右 | 雙目 | 整數(shù)除法:取商的整數(shù)部分,小數(shù)部分去掉,不四舍五入 | |
| % | 取余 | 從左到右 | 雙目 | ? | |
| 4 | + | 加 | 從左到右 | 雙目 | ? |
| - | 減 | 從左到右 | 雙目 | ? | |
| 5 | << | 左移位運(yùn)算符 | 從左到右 | 雙目 | ? |
| >> | 帶符號右移位運(yùn)算符 | 從左到右 | 雙目 | ? | |
| >>> | 無符號右移 | 從左到右 | 雙目 | ? | |
| 6 | < | 小于 | 從左到右 | 雙目 | 關(guān)系運(yùn)算符“大于”說明 |
| <= | 小于或等于 | 從左到右 | 雙目 | ? | |
| > | 大于 | 從左到右 | 雙目 | ? | |
| >= | 大于或等于 | 從左到右 | 雙目 | ? | |
| instanceof | 確定某對象是否屬于指定的類 | 從左到右 | 雙目 | ? | |
| 7 | == | 等于 | 從左到右 | 雙目 | 關(guān)系運(yùn)算符“==”說明 |
| != | 不等于 | 從左到右 | 雙目 | ? | |
| 8 | & | 按位與 | 從左到右 | 雙目 | ? |
| 9 | | | 按位或 | 從左到右 | 雙目 | ? |
| 10 | ^ | 按位異或 | 從左到右 | 雙目 | ? |
| 11 | && | 短路與 | 從左到右 | 雙目 | ? |
| 12 | || | 短路或 | 從左到右 | 雙目 | ? |
| 13 | ? : | 條件運(yùn)算符 | 從右到左 | 三目 | ? |
| 14 | = | 賦值運(yùn)算符 | 從右到左 | 雙目 | ? |
| += | 混合賦值運(yùn)算符 | ? | |||
| -= | ? | ||||
| *= | ? | ||||
| /= | ? | ||||
| %= | ? | ||||
| &= | ? | ||||
| |= | ? | ||||
| ^= | ? | ||||
| <<= | ? | ||||
| >>= | ? | ||||
| >>>= | ? |
?
說明:
1、算數(shù)運(yùn)算符
+ :加法
- :減法
* :乘法
/ :除法
% :取余運(yùn)算
2、關(guān)系運(yùn)算符
< :只能比較基本類型數(shù)據(jù)之間的關(guān)系,不能比較對象之間的關(guān)系。
> : (同關(guān)系運(yùn)算符“<”)
<=: (同關(guān)系運(yùn)算符“<”)
>=: (同關(guān)系運(yùn)算符“<”)
== :若使用該運(yùn)算符比較兩個對象的引用(變量),則實(shí)質(zhì)上是比較兩個變量是否引用了相同的對象。所謂相同的對象是指,是否是在堆棧(Heap)中開辟的同一塊兒內(nèi)存單元中存放的對象。
若比較兩個對象的引用(變量)所引用的對象的內(nèi)容是否相同,則應(yīng)該使用equals()方法,該方法的返回值類型是布爾值。需要注意的是:若用類庫中的類創(chuàng)建對象,則對象的引用調(diào)用equals()方法比較的是對象的內(nèi)容;若用自定義的類來創(chuàng)建對象,則對象的引用調(diào)用equals()方法比較的是兩個引用是否引用了同一個對象,因?yàn)榈诙N情況equals()方法默認(rèn)的是比較引用。
!= :(同關(guān)系運(yùn)算符“==”)
3、邏輯運(yùn)算符 (操作符只能是布爾類型的)
&&
||
!
1 public class Demo {2 public static void main(String[] args) {3 // System.out.println((!'1'||'1')+5);//編譯錯誤4 // System.out.println(!5);//編譯錯誤5 // System.out.println(('1'||'1')+5);//編譯錯誤6 // System.out.println(1||2);//編譯錯誤7 // System.out.println(5-3||4-2);//編譯錯誤8 System.out.println(5<3||4>3);//true9 } 10 }4、位運(yùn)算符
&
|
^
! :不可以與=聯(lián)用,因?yàn)?是一元操作符;不可以對布爾類型的數(shù)據(jù)進(jìn)行按位非運(yùn)算
5、移位運(yùn)算符(只能處理整數(shù)運(yùn)算符)
Char、byte、short類型,在進(jìn)行移位之前,都將被轉(zhuǎn)換成int類型,移位后的結(jié)果也是int類型;移位符號右邊的操作數(shù)只截取其二進(jìn)制的后5位(目的是防止因?yàn)橐莆徊僮鞫鰅nt類型的表示范圍:2的5次方是32,int類型的最大范圍是32位);對long類型進(jìn)行移位,結(jié)果仍然是long類型,移位符號右邊的操作符只截取其二進(jìn)制的后6位。
<< :
>> :若符號位為正,則在最高位插入0;若符號位為負(fù),則在最高位插入1
>>> :無論正負(fù),都在最高位插入0
1 public class Demo {2 public static void main(String[] args) {3 // 0000 0000 0000 01014 // 0000 0000 0000 00105 System.out.println(5>>1);//26 // 0000 0000 0000 10007 // 0000 0000 0000 01008 System.out.println(8>>1);//49 System.out.println(3+5>>1);//4 10 System.out.println(3+(5>>1));//5 11 } 12 }
?
http://www.cnblogs.com/gw811/archive/2012/10/13/2722752.html
?
轉(zhuǎn)載于:https://www.cnblogs.com/softidea/p/5300154.html
總結(jié)
以上是生活随笔為你收集整理的Java运算符优先级(转)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql5.7二进制包安装
- 下一篇: JavaCodeTra 猴子选猴王 约瑟