LoginSignup
2
2

More than 5 years have passed since last update.

Objectのequalsメソッドは==と等価

Last updated at Posted at 2016-04-21

二つのObject型に対する equals メソッドはObject型参照変数のアドレスが一緒であれば true となります。== と同じ。

ObjectEquals.java
public class ObjectEquals {
  public static void main(String[] args) {
    Object obj1 = new Object();
    Object obj2 = new Object();
    Object obj3 = obj2;
    System.out.println(obj1 == obj2);
    System.out.println(obj1.equals(obj2));
    System.out.println(obj3 == obj2);
    System.out.println(obj3.equals(obj2));
  }
}

false
false
true
true
と表示されます。

実験はこちら

以下「Java(tm) Platform, Standard Edition 8 API仕様」 Object#equals からの引用です。
https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Object.html)

Objectクラスのequalsメソッドは、もっとも比較しやすいオブジェクトの同値関係を実装します。つまり、null以外の参照値xとyについて、このメソッドはxとyが同じオブジェクトを参照する(x == yがtrue)場合にだけtrueを返します。

(shiracamusさんからアドバイスをいただきました。ありがとうございます。)

2
2
6

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2