首先要明白有兩種方式來建立字串,
第一種string a = "hello" a本身就是乙個物件,他放在字元創常量池中 當你再次以這種方式建立乙個內容相同的字串時候,會在常量池中檢視時候存在
第二種
string b= new string("hello') 此時後兩個物件,乙個new在堆中的 ,乙個是字串本身在常量池中
而==是比較的位址 所以 a==b 是false
由於string重寫了equal方法比較的是值內容 ,而不是位址 所以 a.equal(b) 結果是true
任何類都有equal()方法,因為那是屬於object的乙個方法,並且它是比較位址的,裡面也是==符號,但是有的類重寫了equal()方法,所以它比較的是內容
和 equal 的區別
public class equaltest 執行結果為 t1 t2 false t1 t2 t3 true t3 t4 true i1.equals i2 false i3.equals i1 i2 true i3.equals i4 true st1 st2 false st1 st2 st3 ...
equal和「 」的區別
對於基本資料型別,判斷兩個變數的值是否相等。equal 不能用於基本資料型別。只能用於類變數。對於基本資料型別要用其包裝類。因為物件變數的儲存的是物件在記憶體中的路徑,即記憶體位址。所以用 比較時,即使物件的值相等,但是他們的記憶體位址不同,所以 的結果為false。故 用於比較兩個變數的值是否相等...
equal和「 」的區別
因為物件變數的儲存的是物件在記憶體中的路徑,即記憶體位址。所以用 比較時,即使物件的值相等,但是他們的記憶體位址不同,所以 的結果為false。故 用於比較兩個變數的值是否相等,而不是變數引用的物件是否相等。equal用於比較兩個物件是否相同型別,值是否相等。總之 比較的是值 變數 棧 記憶體中存放...