阿摩線上測驗 登入

申論題資訊

試卷:102年 - 102年專門職業及技術人員高等建築師、技師、第二次食品技師暨普通不動產經紀人、記帳士考高等_資訊技師#29217
科目:程式設計
年份:102年
排序:0

申論題內容

五、下面 JAVA 程式輸出是什麼?(10 分) 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)); }}

詳解 (共 1 筆)

詳解 提供者:hchungw
在 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