==:指向同一物件
public class EqualsTest{
public static void main(String[] args){
String a = "foo";
String b = "foo";
String c = new String("foo");
String d = new String("foo");
EqualsTest et1 = new EqualsTest();
EqualsTest et2 = new EqualsTest();
if(a == b) System.out.println("Same objects"); //同物件:指向字串常數池的"foo"
if(a == c) System.out.println("Same objects"); //不同物件:c的"foo"不在字串池
else System.out.println("Different objects");
if(c == d) System.out.println("Same objects"); //不同物件
else System.out.println("Different objects");
if(a.equals(b)) System.out.println("Same string"); //回傳true,String有覆寫equals()
if(a.equals(c)) System.out.println("Same string"); //回傳true,String有覆寫equals()
if(et1 == et2) System.out.println("Same objects"); //不同物件
else System.out.println("Different objects");
if(et1.equals(et2)) System.out.println("Same objects"); //不同物件,沒有覆寫equals()
else System.out.println("Different objects");
}
}
==========
Same objects
Different objects
Different objects
Same string
Same string
Different objects
Different objects
沒有留言:
張貼留言