String Literals
がCommon Pool
にあり、同じテキストを持つ2つの文字列リテラルが共通プール内の同じ場所を参照することがわかりました。コードの下に取る:`str1 == str2`を論理エラーにする特殊なケースは何ですか?
String str1 = "Amir";
String str2 = "Amir";
今両方str1
とstr2
共通プール内の同じ場所を参照してください。だから我々が知っていることから、これらの2つの文字列を正しく比較するためにequals()を使う必要があります。そして明らかにstr1.equals(str2)
はtrue
になります。
今から私がhereを読んだのはstr1 == str2
は、両方とも同じアドレス(音がかなり論理的です)を持っているから真実になると言いますが、そうする論理的な誤りもあります。
私の質問は、str1 == str2
を使用すると問題と不一致が発生する可能性があります。
また、http://ideone.com/NTGlRC – JLRishe
はい。この場合でも:http://ideone.com/jU4GAA –