==
操作符專門用來比較兩個變量的值是否相等。也就是用于比較變量所對應的內存中所存儲的值是否相同。要比較兩個基本類型數據或兩個引用變量是否相同,只能用==操作符。
equals
如果一個引用指向的數據是對象類型的,則涉及兩塊內存了,對象本身占一塊(堆),引用或變量占一塊(棧)變量對應的內存所存儲的數值就是對象所占用的那塊內存的首地址。對于指向對象類型的變量,如果要比較兩個變量是否同時指向同一個對象,這時候就需要用==來操作了。equals用于比較兩個獨立的對象的內容是否相同。
比如:String a = new String("foo");
String b = new String("foo");
兩條new 語句創建了兩個對象,然后用a,b 這兩個變量分別指向了
其中一個對象,這是兩個不同的對象,它們的首地址是不同的,即a
和b 中存儲的數值是不相同的,所以,表達式a==b 將返回false,
而這兩個對象中的內容是相同的,所以,表達式a.equals(b)將返回
true。