亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在Java中&和&之間有什么區別?

在Java中&和&之間有什么區別?

海綿寶寶撒 2019-07-13 09:25:45
在Java中&和&之間有什么區別?我一直以為&&操作符在Java中用于驗證其布爾操作數是否都是true,以及&運算符用于對兩種整數類型進行逐位操作.最近我知道&運算符也可用于驗證其布爾操作數是否都是true唯一的區別是,即使LHS操作數是假的,它也會檢查RHS操作數。是&操作符在Java內部重載?或者這背后還有其他的概念?
查看完整描述

3 回答

?
千巷貓影

TA貢獻1829條經驗 獲得超7個贊

&<-驗證兩個操作數
&如果第一個操作數計算為false,則停止計算,因為結果將為false。

(x != 0) & (1/x > 1) <-- this means evaluate (x != 0)然后評估(1/x > 1)那就去做。問題是,對于x=0,這將引發異常。

(x != 0) && (1/x > 1) <-- this means evaluate (x != 0)只有當這是真的,然后評估(1/x > 1)因此,如果有x=0,那么這是完全安全的,如果(x!=0)計算結果為false,則不會拋出任何異常。(1/x > 1).

編輯:

exprA | exprB <-- this means evaluate exprA然后評估exprB然后做|.

exprA || exprB <-- this means evaluate exprA如果這是false然后評估exprB然后做||.


查看完整回答
反對 回復 2019-07-13
?
皈依舞

TA貢獻1851條經驗 獲得超3個贊

除了通過計算兩個操作數而不是懶惰的計算器之外,我認為按位運算符的主要特性是比較每個操作數的字節,如下面的示例所示:

int a = 4;

int b = 7;

System.out.println(a & b); // prints 4

//meaning in an 32 bit system

// 00000000 00000000 00000000 00000100

// 00000000 00000000 00000000 00000111

// ===================================

// 00000000 00000000 00000000 00000100


查看完整回答
反對 回復 2019-07-13
?
一只萌萌小番薯

TA貢獻1795條經驗 獲得超7個贊

boolean a, b;Operation     Meaning                       Note---------     -------                       ----
   a && b     logical AND                    short-circuiting
   a || b     logical OR                     short-circuiting
   a &  b     boolean logical AND            not short-circuiting
   a |  b     boolean logical OR             not short-circuiting
   a ^  b     boolean logical exclusive OR  !a          logical NOTshort-circuiting        (x != 0) && (1/x > 1)   SAFE
not short-circuiting    (x != 0) &  (1/x > 1)   NOT SAFE


查看完整回答
反對 回復 2019-07-13
  • 3 回答
  • 0 關注
  • 477 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號