? ? 摘自:http://www.cnblogs.com/dolphin0520/p/3592500.html?
?
? ? 1、對于==,如果作用于基本數據類型的變量,則直接比較其存儲的 “值”是否相等;
? ? 如果作用于引用類型的變量,則比較的是所指向的對象的地址,當兩個變量或對象在內存中所存儲的地址的值一致,則這兩個對象的內容也肯定一致!
equals屬于哪個類、?
? 2、對于equals方法,注意:equals方法不能作用于基本數據類型的變量
如果沒有對equals方法進行重寫,則比較的是引用類型的變量所指向的對象的地址;
諸如String、Date等類對equals方法進行了重寫的話,比較的是所指向的對象的內容。
?
java的equals,===========================以下內容有興趣可看看=======================================
? ? ?非基本數據類型的變量,在一些書籍中稱作為 引用類型的變量。比如上面的str1就是引用類型的變量,引用類型的變量存儲的并不是 “值”本身,而是于其關聯的對象在內存中的地址。比如下面這行代碼:? ? ?
? ? ?String str1;
這句話聲明了一個引用類型的變量,此時它并沒有和任何對象關聯。
而 通過new String("hello")來產生一個對象(也稱作為類String的一個實例),并將這個對象和str1進行綁定:
equals方法、 str1= new String("hello");
那么str1指向了一個對象(很多地方也把str1稱作為對象的引用),此時變量str1中存儲的是它指向的對象在內存中的存儲地址,并不是“值”本身,也就是說并不是直接存儲的字符串"hello"。
===============================================================================
?
? ? ? equals方法是基類Object中的方法,因此對于所有的繼承于Object的類都會有該方法。在Object類中,equals方法是用來比較兩個對象的引用是否相等,即是否指向同一個對象;
equals的意思?? ? ?
? ? ? String類對equals方法進行了重寫,用來比較指向的字符串對象所存儲的字符串是否相等。
其他的一些類諸如Double,Date,Integer等,都對equals方法進行了重寫用來比較指向的對象所存儲的內容是否相等。
? ??