同値性と同一性 == と equalsメソッド | Javaプログラマー資格試験(OCJ-P) WEB講座

Javaプログラマー資格試験(OCJ-P) WEB講座

Javaプログラマー資格(OCJ-P)を学習するブログです。

OCJ-P・Javaプログラマー資格をとりたい。
Javaプログラミングの入門者・初心者。

そんなあなたに、Javaプログラマー資格の取得に役立つ本質的な知識を、
分かりやすく解説していきます。

 Javaはプリミティブ型と参照型という、
2つの大きな型に分けられます。

それゆえに、同値性と同一性という、
紛らわしい概念が出てきます。

いろいろクラスを作って、
==やequalsを実験してみたけど、
falseばっかり返って来て、たまにtrueが返ってくる。
いまいち法則性が分からない。
あなたもそう思っていませんか?

この界隈はOCJ-Pで非常に狙われやすいですし、
オブジェクト指向の型というシステム上、
とても重要なところなので、しっかりと整理しておきましょう。

 肝心なことはたった1つです!!!
オペランド(比較する対象)が、
プリミティブ型か参照型かを確認する。
ということ。

下の図にまとめました。
Javaプログラマー資格試験(OCJ-P) WEB講座


 







同値性という言葉は、プリミティブ型の比較のとき。
同一性という言場は、参照型を比較するときに使います。

プリミティブ型を比較するときは、==しか使えません。
同一性を比較するときは、==もequalsも使えますが、
ともに同一性の比較になります。

オペランドの型に着目しましょう。
OCJ-Pでは、それで解決できます^^