你的朋友是對的。
在代碼中你說C = A.
這意味着,C是完全相同的對象A.
在其他情況下,它們不是同一個對象,但它們具有相同的內容。
你可能想看看它返回true Arrays.deepEquals(你的代碼稍加修改):
封裝陣列;
import java.util。陣列;
public class ArraysTest {
public static void main(String[] args) {
Integer[] A = { 1, 2, 3 };
Integer[] B = { 1, 2, 3 };
Integer[] C = A;
System.out.println("A.equals(B) is " + (A.equals(B)));
System.out.println("Arrays.deepEquals(A, B) is "
+ (Arrays.deepEquals(A, B)));
System.out.println("A == B is " + (A == B));
System.out.println("A == C is " + (A == C));
}
}
輸出將是:
A.equals(B) is false
Arrays.deepEquals(a, b) is true
A == B is false
A == C is true
你可以很容易地測試它。 – Maroun
是的,我認爲你的朋友是對的,看到這個問題的更多細節:http://stackoverflow.com/questions/8777257/equals-vs-arrays-equals-in-java – JLewkovich
請使用Java變量的小寫名稱。 – Renato