元の URL: Java_IT における == とイコールの違いは何ですか?荒野行動ブログ-CSDN ブログ
導入
この記事では、Java における == と等しいの違いを紹介します。
違い
違いは、1 つは演算子で、もう 1 つはメソッドであることです。
==
変数の値が同じかどうかを比較します。
- 比較対象が基本データ型の場合は、値が等しいかどうかを比較します。
- 比較が参照データ型の場合、オブジェクトのメモリ アドレスが等しいかどうかが比較されます。
Java は値による転送のみを行うため、== の場合、基本データ型を比較するか参照データ型変数を比較するかにかかわらず、比較はすべて値ですが、参照型変数に格納される値はオブジェクトのアドレスです。参照型オブジェクト変数は実際には参照であり、その値はオブジェクトが配置されているメモリ アドレスを指します。
イコールメソッド
比較対象の内容が同じか確認してください。
equals() メソッドは Object クラスに存在し、Object クラスはすべてのクラスの親クラスです。equals メソッドは Object クラスで定義されています。
public boolean equals(Object obj) {
return (this == obj);
}
- クラスがequalsメソッドをオーバーライドしない場合
- equals が呼び出されるとき、Object の equals メソッドが呼び出されます (実際には == 演算子が使用されます)。
- クラスがequalsメソッドをオーバーライドする場合
- equals が呼び出されると、クラス独自の equals メソッドが呼び出されます (通常、オブジェクトの内容が同じかどうかを比較するため)。例えば:
- 文字列: 文字列の内容が同じかどうかを比較します。
- 整数: 対応する基本データ型 int の値が同じかどうかを比較します。
- equals が呼び出されると、クラス独自の equals メソッドが呼び出されます (通常、オブジェクトの内容が同じかどうかを比較するため)。例えば: