2017-10-01 20 views
-2

これら2つの文字列宣言の違いは何ですか?Javaの文字列宣言

String s1 = "tis is sample"; 
String s2 = new String ("tis is sample"); 

私はs1==s2をチェックし、それはfalseを言います。

なぜそれがfalseですか?

これら2つの宣言の背後にある作業についても説明できますか?私はとても混乱しています。 Stringを宣言するにはどちらを使用しますか?

+0

以下から詳細を確認することができますあなたはまず、既存の質問を検索してみてくださいする必要があり、多くの同じ答えられた質問があります。 –

+0

実際には、ネストされた重複であるように見えます。これも重複してマークされています。 – RSon1234

+0

そして、適切な単語を素敵な句読点と文法で書き込もうとします。 –

答えて

1

文字列を比較しながら、あなたはまた、==

// These two have the same value 
s1.equals(s2) // --> true 

// ... but they are not the same object 
s1 == s2 // --> false 

// ... neither are these 
new String("test") == new String("test") // --> false 

// ... but these are because literals are interned by 
// the compiler and thus refer to the same object 
"tis is sample" == "tis is sample" // --> true 

// ... but you should really just call Objects.equals() 
Objects.equals(s1, new String("tis is sample")) // --> true 
Objects.equals(null, "tis is sample") // --> false 

を使用しないで

if (s1.equals(s2)) { 
    do something; 
} 

を使用する必要がありますが、コードhttp://rextester.com/GUR44534

関連する問題