3

これまで、プログラムで演算子を使用して==すべての文字列を比較してきました。ただし、バグに遭遇し、そのうちの1つを. equals()代わりに、バグを修正しました。

== 悪いですか?いつ使用すべきか、使用すべきでないか? 違いは何ですか?

4

3 に答える 3

3

これは実際には面白い質問です。ここでは、わずかに変更されています。

*これまで、プログラムで演算子を使用してすべての番号を追加してきました。しかし、私はバグに遭遇し、 +代わりにそれらの1つを変更し、バグを修正しました.

*悪いですか?

答え: 全然悪くないです!でテストするときに気付かないかもしれませんが、数字を追加するだけではありません2*2

于 2013-10-08T11:45:26.180 に答える
1

はい、==は悪いです。オブジェクトを == で比較すると、オブジェクトが等しいかどうかではなく、オブジェクトが同じかどうかが比較されます。ほとんどの場合、等しい文字列は実際には同じオブジェクトを参照していますが、必ずしもそうであるとは限りません。

この投稿を参照Java で文字列を比較するにはどうすればよいですか? 例えば

于 2013-10-08T11:13:58.940 に答える
1

== 演算子は、演算子の左オペランドと右オペランドの参照が等しいかどうかをチェックしますが、2 つのオブジェクトの値については equal メソッド チェックを行います。

文字列を扱うときは、可能な限り equals メソッドを使用することをお勧めします。文字列にはオブジェクトのプールがあるため、== 演算子を使用して 2 つの文字列を比較すると、参照の違いにより内容が同じであっても false が返されます。しかし equal メソッドは true を返します。

于 2013-10-08T11:34:15.727 に答える