我在比較2段代碼。首先Integer i = 3 vs Integer i = new Integer(3)
Integer i=3;
Integer j=3;
if(i==j)
System.out.println("i==j"); //prints i==j
其次,
Integer i=3;
Integer j=new Integer(3);
if(i==j)
System.out.println("i==j"); // does not print
我都懷疑,在第一個片段,爲什麼i==j
正在打印?不應該引用不同?
與引用,新,對象,比較內存地址#Idk#CIS20 ... Somthing –
'=='比較引用不值,當您分配。在第一種情況下,'i','j'指向內存中的相同整數。在第二種情況下使用new,則創建兩個具有相同值3的對象整數的新實例。 –
這不是鏈接問題的副本。注意,由於錯誤的前提「新Integer(1)== new Integer(1)',這個問題被視爲」不是真正的問題「,這是不正確的。 –