黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java運算符優先級詳解

Java運算符優先級詳解

更新時間:2022-05-05 11:23:59 來源:動力節點 瀏覽1694次

Java 有明確定義的表達式求值規則,包括運算符優先級、運算符關聯性和操作數求值順序。我們描述了這三個規則中的每一個。

運算符優先級。 Java運算符優先級指定操作數與運算符分組的方式。例如,1 + 2 * 3 被視為 1 + (2 * 3),而 1 * 2 + 3 被視為 (1 * 2) + 3,因為乘法運算符的優先級高于加法運算符。您可以使用括號來覆蓋默認的運算符優先規則。

運算符關聯性。 當一個表達式有兩個優先級相同的運算符時,運算符和操作數會根據它們的關聯性進行分組。例如72 / 2 / 3被視為 (72 / 2) / 3因為除法運算符是從左到右的關聯。您可以使用括號來覆蓋默認的運算符關聯性規則。

大多數 Java 運算符都是從左到右關聯的。一個值得注意的例外是賦值運算符,它是從右到左結合的。結果,表達式x = y = z = 17被視為x = (y = (z = 17)),所有三個變量的值都為 17。回想一下,賦值語句的值是它的右-手邊。關聯性與某些運算符無關。例如, x <= y <= z和x++--在 Java 中是無效的表達式。

Java 運算符的優先級和關聯性。 下表顯示了所有 Java 運算符從最高到最低優先級,以及它們的關聯性。大多數程序員不會全部記住它們,即使是那些記住的,為了清楚起見,也使用括號。

等級 操作員 描述 關聯性
16 ()
[]
括號
數組訪問
成員訪問
左到右
15 ++
--
一元后增量
一元后減
左到右
14 +
-

~
++
--
一元加
一元減
一元邏輯非
一元按位非
一元預遞增
一元預遞減
右到左
13 ()
新的
鑄造
對象創建
右到左
12 * / % 乘法的 左到右
11 + -
+
附加
字符串連接
左到右
10 << >>
>>>
轉移 左到右
9 < <=
> >=
instanceof
關系 左到右
8 ==
!=
平等 左到右
7 & 按位與 左到右
6 ^ 按位異或 左到右
5 | 按位或 左到右
4 && 邏輯與 左到右
3 || 邏輯或 左到右
2 ?: 三元 右到左
1 = += -=
*= /= %=
&= ^= |=
<<= >>= >>>=
任務 右到左
0 -> lambda 表達式箭頭 右到左

您會在網絡和教科書中找到不同的(通常是等效的)運算符優先級表。它們通常以無關緊要的方式不同意,因為某些運算符不能共享操作數,因此它們的相對優先順序無關緊要(例如,new和!)。Java 語言規范中沒有明確的運算符優先級表。相反,運算符優先級和關聯性規則是通過定義 Java 語言的語法來推斷的。

Java中操作數求值的順序。 關聯性和優先級決定了 Java 對操作數和運算符的分組順序,但它不決定操作數的計算順序。在 Java 中,運算符的操作數總是從左到右計算。同樣,參數列表總是從左到右計算。因此,例如在表達式 A() + B() * C(D(), E())中,子表達式按A()、B()、 D()、E()和C()。雖然C()出現在D()和E()的左側,但我們需要D()和E()來評估C()。編寫依賴于這種行為的代碼被認為是糟糕的風格(并且不同的編程語言可能使用不同的規則)。

短路評估。 除了三個例外(&&、||和?:),Java 在執行操作之前評估運算符的每個操作數。對于邏輯 AND ( &&) 和邏輯 OR ( ||) 運算符,Java 僅在需要解析結果時才評估第二個操作數。這稱為短路評估。它允許 if ((s != null) && (s.length() < 10))之類的語句可靠地工作(即,僅當 is not時才調用該length()方法)。程序員很少使用帶有布爾表達式的非短路版本(&和|) 。snull

運算符優先級出錯了。 有時,一種語言中定義的優先順序不符合數學規范。例如,在 Microsoft Excel 中, -a^b被視為(-a)^b而不是 -(a^b). 所以-3^2計算結果為 9而不是-9,這是大多數數學家所期望的值。微軟承認這種 怪癖 是一種“設計選擇”。有人想知道程序員是否依賴于 C 優先順序,其中一元運算符的優先級高于二元運算符。此規則與所有 C 運算符的數學約定一致,但由于添加了冪運算符而失敗。一旦在 Microsoft Excel 2.0 中建立了訂單,就很難在不破壞向后兼容性的情況下對其進行更改。

運算符關聯性出錯。 有時,運算符的關聯性在一種編程語言中是從左到右實現的,而在另一種編程語言中是從右到左實現的。一個令人震驚的例子 是求冪。在 Wolfram Alpha 和 Google Sheets 中,取冪運算符是從右到左關聯的,因此2 ^ 2 ^ 3被視為2 ^ (2 ^ 3),即 256。但是,在 Matlab 和 Excel 中,取冪運算符是從左到右關聯的,因此 2 ^ 2 ^ 3被視為(2 ^ 2) ^ 3,即 64。求冪不是 Java 中的二元運算符。

以上就是關于“Java運算符優先級詳解”的介紹,大家如果想了解更多相關知識,可以關注一下動力節點的Java在線學習,里面的課程內容從入門到精通,通俗易懂,比較適合沒有基礎的小伙伴學習,希望對大家能夠有所幫助哦。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 男人的天堂黄色 | 日韩美女一级片 | 一97日本道伊人久久综合影院 | 九九爱精品视频 | 国产一区国产二区国产三区 | va天堂| 天天操天天射天天爽 | 色羞羞| 日本中文视频 | 桃花岛亚洲精品tv自拍网站 | 特级淫片aaaaa片毛片 | 免费看日韩 | 色吊丝最新网站 | 最近中文字幕免费mv视频8 | 国产精品1区 | 天天在线欧美精品免费看 | 国产69精品久久久久777 | 亚洲黄网视频 | 午夜视频www | 国产123区在线视频观看 | 日韩福利片午夜在线观看资源 | 日本ab视频 | 手机在线观看毛片 | 亚洲欧美精品伊人久久 | 日本午夜片成年www 日本午夜视频在线 | 五月婷婷视频在线 | 国产亚洲91| 么公又大又硬又粗又爽小说 | 香蕉视频草莓 | 一个人看的在线www视频 | 免费午夜在线视频 | 精品91麻豆免费免费国产在线 | 性free中国美女hd | 最新国产一区二区精品久久 | 天天射天天射天天射 | 免费观看黄色毛片 | 午夜精品在线视频 | 91午夜精品亚洲一区二区三区 | 亚洲欧美在线一区二区 | 久久久久夜夜夜精品国产 | 一区二区日本视频 |