2012-04-16 25 views
-4

當我們用Java編寫如下代碼:什麼參數'=='決定平等?

object1 ==對象2;

憑什麼不操作 '==' 決定的平等?

+1

http://google.com/?q=java+equality+operator – 2012-04-16 13:03:14

+0

可能重複:** [比較Java中的字符串(http://stackoverflow.com/questions/1833538/comparing-strings -in-java)**和** [String in Java:equals vs ==](http://stackoverflow.com/questions/3281448/strings-in-java-equals-vs)** – 2012-04-16 13:04:29

+0

可能的重複[ java == vs Equals()confusion](http://stackoverflow.com/questions/7520432/java-vs-equals-confusion) – 2012-04-16 13:17:53

回答

11

object1如果和object2引用類型,然後==檢查是否object1object2是同一個對象都引用。

請參閱Java語言規範中的15.21 Equality Operators瞭解詳細信息。

3

object1 == object2;將返回true,如果兩者都是參考同一對象。不要以爲它會返回true,如果兩個對象具有相同的內容,或者兩者都是同一個類的對象等

時,同一對象兩個引用,否則。

+0

你的意思是**都是對同一個對象**的引用。他們是不同的參考。 – 2012-04-16 13:03:40

+0

@ChristofferHammarström當然是。 – 2012-04-16 13:04:05

+0

然後修復它。 – 2012-04-16 13:12:41

3
Object a = new Object(); 
Object b = new Object(); 
System.out.println(a==b); //not the same 
Object c = new Object(); 
Object d = c; // d points to the same reference 
System.out.prinlnt(c==d); // the same