Java における == と等しいの違いは何ですか?

元の URL: Java_IT における == とイコールの違いは何ですか?荒野行動ブログ-CSDN ブログ

導入

この記事では、Java における == と等しいの違いを紹介します。

違い

違いは、1 つは演算子で、もう 1 つはメソッドであることです。

==

変数の値が同じかどうかを比較します。

  • 比較対象が基本データ型の場合は、値が等しいかどうかを比較します。
  • 比較が参照データ型の場合、オブジェクトのメモリ アドレスが等しいかどうかが比較されます。

Java は値による転送のみを行うため、== の場合、基本データ型を比較す​​るか参照データ型変数を比較するかにかかわらず、比較はすべて値ですが、参照型変数に格納される値はオブジェクトのアドレスです。参照型オブジェクト変数は実際には参照であり、その値はオブジェクトが配置されているメモリ アドレスを指します。

イコールメソッド

比較対象の内容が同じか確認してください。

equals() メソッドは Object クラスに存在し、Object クラスはすべてのクラスの親クラスです。equals メソッドは Object クラスで定義されています。

public boolean equals(Object obj) {
    return (this == obj);
}
  1. クラスがequalsメソッドをオーバーライドしない場合
    1. equals が呼び出されるとき、Object の equals メソッドが呼び出されます (実際には == 演算子が使用されます)。
  2. クラスがequalsメソッドをオーバーライドする場合
    1. equals が呼び出されると、クラス独自の equals メソッドが呼び出されます (通常、オブジェクトの内容が同じかどうかを比較するため)。例えば:
      1. 文字列: 文字列の内容が同じかどうかを比較します。
      2. 整数: 対応する基本データ型 int の値が同じかどうかを比較します。

おすすめ

転載: blog.csdn.net/feiying0canglang/article/details/133265963
おすすめ