重複の可能性:
文字列の等価性と場所の等価性
これは私の最初の質問です。しばらくお待ちください。
次のコードがあります。
String str1 = "hello";
String str2 = "hello";
System.out.println(str1 == str2);
そして結果は真です
なんで?
重複の可能性:
文字列の等価性と場所の等価性
これは私の最初の質問です。しばらくお待ちください。
次のコードがあります。
String str1 = "hello";
String str2 = "hello";
System.out.println(str1 == str2);
そして結果は真です
なんで?
Java は、コンパイル時に同じリテラルを見つけると、その単一のインスタンスを作成し、それをすべての参照に参照します。
str1 と str2 はどちらも同じリテラル「hello」を持っているため、jvm はその単一のインスタンスを作成し、それを str1 と str2 に割り当てます。
したがって、 str1==str2 を実行すると true になります。(どちらも同じインスタンスを参照しています)
== は等しいことを意味するため、str1 と str2 が互いに等しいと言っている..そして、それは真です