學習中一些容易混淆的概念,記錄一下,方便自己,也方便他人。
&和&&都是用來做「與」運算的,當運算子兩邊的表示式都為"true"時,結果才為"true",只要有一方為"false",結果就為false。
在"名稱"上,一般把&叫做"邏輯與",&&叫做"短路與",不知道老外有沒有更好的"專業"的叫法,其實都是邏輯"與"操作,只是給個名字方便區分。
&&短路"與"的意思是,如果第乙個表示式的結果為false,則第二個表示式不再計算。
&還可以做"位運算",當&兩邊的表示式不是boolean時,表示按位運算。比較經典的面試題有:最高效的做2*8的方法,2<<3;
2在記憶體中的表示*********************0010,左移3位,************************10000。
java中 與 的區別
既是邏輯運算子,又是位運算子,當 作為邏輯運算子時屬於非短路型,而 只是短路型邏輯運算子 和 都可以用作邏輯與的運算子,表示邏輯與 and 當運算子兩邊的表示式的結果都為true時,整個運算結果才為true,否則,只要有一方為false,則結果為false。還具有短路的功能,即如果第乙個表示式為fa...
java 與equal 的區別
判定的是物件的等價性,必須是實實在在地是同乙個物件才返回true。判定基本型的值是否相等。int i1 47 int i2 47 system.out.println i1 i2 output true 基本型包裝類 integer n1 new integer 47 integer n2 new ...
java 與equals的區別
號比較引用型別比較的是位址值是否相同 equals 比較引用型別預設也是比較位址值是否相同,而string類重寫了equals 方法,比較的是內容是否相同。package name public class text02 執行結果為 false true true true 字串如果是變數相加,先開...