和 equals 的區別是什麼?

2021-09-22 23:10:59 字數 1187 閱讀 5670

string x =

"string"

;string y =

"string"

;string z =

newstring

("string");

system. out.

println

(x==y)

;// true

system. out.

println

(x==z)

;// false

system. out.

println

(x.equals

(y))

;// true

system. out.

println

(x.equals

(z))

;// true

x 是開闢的新的記憶體空間,y並沒有開闢新的記憶體空間,而是指向x指向的物件"string",所以引用x 和引用 y是相同的, 所以 == 是 true,而 new string() 方法則重寫開闢了記憶體空間,所以== 結果為 false,而 equals 比較的是值,所以結果都為 true。

建立了幾個物件?

string s=「abc」; 建立了幾個物件?

毫無疑問,這裡面只建立了乙個物件——「abc";

string s1=「abc」; string s2=s1;建立了幾個物件?

仍然只有乙個物件——「abc";

string s1=「abc」; string s2=」abc";建立了幾個物件?

這裡仍然只有乙個物件——「abc";

string s=「abc」+「def」;建立了幾個物件?

注意,這裡建立了三個物件:「abc"、」def"、「abcdef";

string s=new string(「abc」);建立了幾個物件?

大家也都知道是兩個物件。實際上是"abc"本身就是文字池中的乙個物件,在執行new string()時,把文字池即pool中的字串"abc"複製到堆中,並把這個物件的應用交給s,所以建立了兩個string物件,乙個在pool中,乙個在堆中。

string s1=new string(「abc」);string s2=new string(「abc」);建立了幾個物件?

三個物件。"abc"是文字池中的乙個物件,然後又在堆中用new string()建立了兩個物件。

和equals的區別是什麼

1 是關係運算子,equals是方法,結果都返回布林值 2 object類的和equals都是比較位址,作用相同 作用 jdk中的類一般已經重寫了equals 方法,比較的是內容 自定義的類如果沒有重寫equals方法,將呼叫父類的equals方法 可以根據自己的需求重寫equals方法,重寫equ...

和 equals 的區別是什麼

它的作用是判斷兩個物件的位址是不是相等。即,判斷兩個物件是不是同乙個物件。基本資料型別 比較的是值,引用資料型別 比較的是記憶體位址 equals 它的作用也是判斷兩個物件是否相等。但它一般有兩種使用情況 情況1 類沒有覆蓋 equals 方法。則通過 equals 比較該類的兩個物件時,等價於通過...

和 equals 的區別是什麼

它的作用是判斷兩個物件的位址是不是相等。即,判斷兩個物件是不是同乙個物件。基本資料型別 比較的是值,引用資料型別 比較的是記憶體位址 equals 它的作用也是判斷兩個物件是否相等。但它一般有兩種使用情況 情況1 類沒有覆蓋 equals 方法。則通過 equals 比較該類的兩個物件時,等價於通過...