大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

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

Java運算符優先級詳解

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

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在線學習,里面的課程內容從入門到精通,通俗易懂,比較適合沒有基礎的小伙伴學習,希望對大家能夠有所幫助哦。

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 日本亚洲黄色 | 国产影片中文字幕 | 免费观看一级欧美大 | 九九热热九九 | 女人洗澡一级毛片一级毛片 | 久久精品国产精品亚洲红杏 | 日本高清在线观看天码888 | 国产日本三级 | 日本一级在线播放线观看视频 | 狠狠干夜夜 | 日本黄色免费一级片 | 四虎影视永久免费观看网址 | 国产香蕉国产精品偷在线观看 | 欧美亚洲国产一区 | 色狠狠成人综合网 | 日本1区二区三区公司 | 亚洲欧美二区三区久本道 | 午夜视频国产 | 久久国产精品免费 | 狠狠操狠狠干 | xo欧美性另类 | 一级黄色录像免费观看 | 51国产午夜精品免费视频 | 伊人色综合琪琪久久社区 | 国产不卡视频在线 | 免费观看h片 | 国产精品三区四区 | 天天干夜夜夜 | 男人看片网站 | 精品国产免费久久久久久婷婷 | 国产精品一区二区三区免费视频 | 免费一级毛毛片 | 色狠狠一区二区 | 亚洲一区二区三区免费观看 | 奇米在线777在线视频 | 一本色道久久88加勒比—综合 | 国外免费一级 | 久久这里只有精品1 | 久草热在线观看 | 香蕉视频网站在线播放 | 四虎永久在线精品国产馆v视影院 |