在 Java 中,Object 類的 equals() 方法用於檢查兩個對象是否相等。默認實現是比較對象的記憶體地址(即它們是否是同一個對象)。
給定的代碼片段如下:
public class C4 {
public static void main(String[] args) {
Object obj1 = new Object(), obj2 = new Object(), obj3 = obj1;
System.out.println(obj1.equals(obj2) + " " + obj1.equals(obj3));
}
}
在這段代碼中:
obj1 和 obj2 是分別通過 new Object() 創建的兩個不同的對象,它們在記憶體中有不同的地址。
obj3 是對 obj1 的引用,所以 obj3 和 obj1 指向記憶體中的同一個對象。
因此:
obj1.equals(obj2) 會返回 false,因為 obj1 和 obj2 指向不同的對象。
obj1.equals(obj3) 會返回 true,因為 obj3 是對 obj1 的引用,它們指向同一個對象。
所以,這段代碼的輸出將會是:
false true