我無法理解obj和obj2對象在以下代碼中創建方式的差異。特別是,我不確定一個基元如何投射到一個物體上。看看這裏的其他一些問題,我認爲這是不可能的。但下面的程序編譯並運行良好。在第一種情況下,輸出是錯誤的,在第二種情況下是真的。== Java中對象的運算符
public class Test {
public static void main(String args[]){
Integer num = new Integer(3) ;
Object obj = num;
Integer[] integerArr = {1, 2, 3, 4};
Object[] objArr = integerArr;
boolean contains = false;
for (int i = 0; i < objArr.length; i++){
if (objArr[i] == obj){
contains = true;
break;
}
}
System.out.println(contains);
int num2 = 3 ;
Object obj2 = num2;
Integer[] integerArr2 = {1, 2, 3, 4};
Object[] objArr2 = integerArr2;
boolean contains2 = false;
for (int i = 0; i < objArr2.length; i++){
if (objArr2[i] == obj2){
contains2 = true;
break;
}
}
System.out.println(contains2);
}
}
你很幸運。整數對象被緩存爲小值。 – Mysticial 2013-03-06 00:31:54
@Mystical:謝謝 – 2013-03-06 00:37:00
重複,重複,重複..現在就找到它們。 – 2013-03-06 00:40:08