2015年8月4日 星期二

[Java] Java 的一些小陷阱(1)



這是 Java 的一些小陷阱

1. 不同於 C/C++ , Java 的 array 是物件
     是物件 , 才有屬性( .length) 和 method ( .equals() )
2. Java Object 裡面 obj1.equals( obj2)   ,
            預設實做法是 obj1 == obj2
3. array 類別繼承自 Java Object.
4. 結果就是 array1.equals(array2) 等同於 array1 == array2


既然 array1.equals(array2) 相同於 array1 == array2,
不同物件的比較根本不會相等(除非參考到相同物件)
結果就是 false


如果要比較陣列內容可以用
Arrays.equals(array1, array2) 比較 array 內容


array1.equals(array2) 沒有自訂equals,
所以使用 Object.equals 實做 ,


比較本體就是 ==
比較物件是否相等



沒有留言: