7

Stringいつs をオブジェクトとして比較する必要があり、いつそれらのequalsメソッドを使用する必要がありますか? 念のため、私はいつも を使用していますequalsが、あまり効率的ではないようです。string1 == string2安全に使用できると確信できるのはどのような状況ですか?

ありがとう!

4

3 に答える 3

16

ほとんど常に使用する必要がありますequals。次の場合に確実string1 == string2に機能します。

  • 他の方法で個別の値を取得していることをすでに確認しています (たとえば、セットから取得した文字列値を使用しているが、他の理由でそれらを比較している)。
  • コンパイル時の文字列定数を扱っていることはご存知でしょう
  • 自分で文字列を手動でインターンしました

私の経験では、それは本当に頻繁には起こりません。

于 2010-10-07T20:50:22.573 に答える
1

私がJavaについて知っていることからstring1==string2、それらのオブジェクトへの参照が同じである場合にのみ真になります。次のケースを見てください。

String string1 = new String("Bob");
String string2 = new String("Bob");

string1 == string2; // false, they are seperate objects
string1 = string2;  // asigning string1 to string2 object
string1 == string2; // true, they both refer to the same object
于 2010-10-07T20:51:21.957 に答える
0

==オブジェクトが同じであることが確実な場合にのみ、比較に使用できます。

たとえば、最終的な静的文字列変数がある場合、これが発生する可能性があります。比較が同じオブジェクト間で行われることは確実です。

equalsfor 文字列比較に固執します。

于 2010-10-07T20:51:44.927 に答える