2013-06-22 38 views
-2
If I have two reference object with different name in main class Such as: 

AA aa = new AA(); 
AA bb = new AA(); 

and if i compare it using aa.equals(bb); then what it will return. 

and if i will use 

BB bb = new BB(); 

and i compare it using aa.equals(bb); 

Then what is difference both of them 

我總是混淆了對象的null行爲。object.quals方法與java中的==的區別

+3

上有SO 許多類似這樣的問題 http://stackoverflow.com/questions/1643067/whats-the-difference-between-equals-and –

回答

3

運算符==測試查看兩個對象引用變量是否引用完全相同的對象實例。

方法.equals()測試以查看兩個對象是否相互比較 - 但它們不需要是同一對象的完全相同的實例。

示例#1:

Integer i = new Integer(10); 
Integer j = i; 
在上面的代碼

i == j是真實的,因爲ij都指向同一個對象。

例子#2:因爲,儘管它們都具有值10,它們是兩個不同的對象

Integer i = new Integer(10); 
Integer j = new Integer(10); 

在上面的代碼,i == j是假的。

此外,在上面的代碼中,因爲i.equals(j)雖然它們是兩個不同的對象,它們在它們表示的相同數目的事實等效爲真,10

相關問題