2016-07-20 41 views
-5

Java運算符==用於參考比較Java運算符 - >如何==運算符工作

那麼如何使用==來比較int a = 1;和int b = 1;

兩個值被存儲在不同的位置其然後如何比較

+2

它不僅用於比較引用:如[JLS]中所述(https://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.21 ),它是一個數字相等運算符,一個布爾相等運算符*和*一個引用相等運算符。 –

+0

實際上並不是我剛標記(重新打開)的那個的副本;但你應該閱讀http://stackoverflow.com/q/8790809/3788176。 –

+0

原始值沒有位置,它們只有一個值。 –

回答

0

作爲評論安迪中,JLS指出運算符「==」確實用於引用類型比較也爲數值類型布爾類型比較。

int數字類型。
當比較數字類型進行比較(未引用)。

但是,如果你想確定是否兩個整數的引用是等價的,而不是那麼你可以使用整數類。這個類簡單地包裝了原始數字型INT

現在考慮下面的代碼:

public class TestClass { 

public static void main(String[] args) 
{ 
    Integer A = new Integer(1); 
    Integer B = new Integer(1); 
    Integer C = A; 

    if (A == B) System.out.println("Won't print."); // (1) 

    if (A.equals(B)) System.out.println("WILL Print!!!"); // (2) 

    if (A == C) System.out.println("WILL Print!!!"); // (3) 
} 
} 
  1. 因爲A和B是對象,所述參考A的是相對於參考B.的即使它們INT值是相同的,因爲它們是獨立引用這種說法是錯誤的。
  2. 等於方法比較每個整數對象INT值並因此是真實的。
  3. 整數對象 C引用了對象 A.因此,該參考比較將是真實的。