ホームページ > Java > &#&はじめる > Javaにおける==とequalsの比較演算分析

Javaにおける==とequalsの比較演算分析

王林
リリース: 2020-11-17 15:11:33
転載
2383 人が閲覧しました

Javaにおける==とequalsの比較演算分析

比較分析:

(学習ビデオ共有: java コース)

==: その機能は、 two 2 つのオブジェクトのアドレスは等しいですか?つまり、2 つのオブジェクトが同じオブジェクトであるかどうかを判断します。 (基本データ型は値を比較し、参照データ型 == メモリ アドレスを比較します)。

equals(): その機能は、2 つのオブジェクトが等しいかどうかを判断することでもあります。ただし、一般に、次の 2 つの使用例があります。

ケース 1: このクラスは、equals() メソッドをカバーしていません。この場合、equals() を使用してこのクラスの 2 つのオブジェクトを比較することは、== を使用して 2 つのオブジェクトを比較することと同等です。

ケース 2: クラスは、equals() メソッドをオーバーライドします。一般に、equals() メソッドをオーバーライドして 2 つのオブジェクトの内容が等しいことを確認します。内容が等しい場合は true が返されます (つまり、2 つのオブジェクトは等しいとみなされます)。

コード例:

public class test1 {
	public static void main(String[] args) {
		String a = new String("ab"); // a 为一个引用
		String b = new String("ab"); // b 为另一个引用,对象的内容一样
		String aa = "ab"; // 放在常量池中
		String bb = "ab"; // 从常量池中查找
		if (aa == bb) // true
		System.out.println("aa==bb");
		if (a == b) // false,非同一对象
		System.out.println("a==b");
		if (a.equals(b)) // true
		System.out.println("aEQb");
		if (42 == 42.0) // true
		System.out.println("true");
	}
}
ログイン後にコピー

オブジェクトのequalsメソッドはオブジェクトのメモリアドレスを比較し、Stringのequalsメソッドはオブジェクトを比較するため、Stringのequalsメソッドはオーバーライドされました。 。 String 型のオブジェクトを作成する場合、仮想マシンは定数プールを検索して、作成するオブジェクトと同じ値を持つ既存のオブジェクトがあるかどうかを確認し、存在する場合はそれを現在の参照に割り当てます。そうでない場合は、定数プールに String オブジェクトを再作成します。

関連する推奨事項:Java の使用を開始する

以上がJavaにおける==とequalsの比較演算分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート