ホームページ >Java >&#&チュートリアル >Java で「==」の代わりに「.equals()」を使用する必要があるのはどのような場合ですか?
「.equals」と「==」の違いを理解する
「=」の代わりに「.equals」を使用するという講師の主張= オブジェクトの比較では、相対的な問題が生じます。
違いは何ですか?
Java では、「==」はオブジェクト参照を比較し、2 つのオブジェクトが同じメモリ位置を占有しているかどうかを判断します。これは、値をメモリに直接保存するプリミティブ型 (例: int、double) ではうまく機能します。
ただし、非プリミティブ型 (例: String、Object) の場合、「==」はオブジェクト参照ではなくオブジェクト参照を比較します。それらの中に保存されている実際の値。これにより、不正確または不完全な等価性チェックが行われる可能性があります。
".equals" は、値ベースの等価性を判断するためにカスタム クラス用に再定義されたメソッドです。これをオーバーライドして、オブジェクトを比較するためのカスタム ロジックを指定できます。
「.equals」が優れているのはなぜですか?
講師が「.equals」を好む理由は次のとおりです。
例: 文字列オブジェクトの比較
次のコードを考えてみましょう:
String x = "hello"; String y = new String(new char[] { 'h', 'e', 'l', 'l', 'o' });
"== は false と評価されます。なぜなら、x と y は、同じ文字列値を含んでいるにもかかわらず、別個のオブジェクトだからです。ただし、「.equals」は String オブジェクトの値を比較するため true を返します。
結論
一方、「==」は「.equals」より高速です。プリミティブ型の場合は、「.equals」を優先して非プリミティブ型の場合は避けるべきです。 「.equals」は、より信頼性が高く柔軟な値ベースの等価性チェックを提供し、オブジェクト参照やカスタム オブジェクト定義に関係なくコードが正しく動作することを保証します。
以上がJava で「==」の代わりに「.equals()」を使用する必要があるのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。