
―Javaプログラミングの前提知識―
2003/3/27
| equals()メソッド |
| ワンポイントQuestion |
次のプログラムを実行したときの結果として正しいものはどれですか? (単一選択)
class q22 { |
|
| equals()メソッド |
文字列を比較する場合、==を利用するのではなく、java.lang.Stringクラスのequals()メソッドを利用します。==は、変数に格納されている値が同じかどうかを比較します。基本データ型では変数に値が保持されているので、変数に代入されている値が同じかどうかでtrue/falseを判断します。
文字列の場合、Stringクラスをインスタンス化したオブジェクトのため、変数に代入されている値は、メモリ上の別の場所に存在する文字列オブジェクトを参照しているリファレンスです。
別々の文字列オブジェクトは別々に存在しているため、それぞれを参照しているリファレンスは異なるものになります。そのため、==で比較してもfalseになります。2つの同じ文字列「javabook」と「javabook」がある場合でも、別々のインスタンスとして存在しており、2つの変数が別のインスタンスを参照していれば、==でtrueになりません。
equals()メソッドで比較する場合、変数に代入されている参照ではなく、その参照されているオブジェクト自身が比較されます。そのため、別のインスタンスとして存在する場合でも、trueが返ります。
そのほかの代表的なクラスのequals()メソッドについて確認します。java.lang.Objectクラスのequals()メソッドは、オブジェクトの参照であるxとyが同じオブジェクトを参照する場合にだけ、すなわちx==yがtrueの場合にtrueを返します。java.lang.Booleanクラスのequals()メソッドは、引数がnullではなく、このオブジェクトと同じboolean値を表すBooleanオブジェクトの場合にだけtrueを返します。
| POINT |
|
equals()メソッドは、比較対象のオブジェクト同士の型が一致している場合にのみ比較が行われます。 |
| ワンポイントQuestionの解答 |
正解 C
| Java2ラーニングブック
−310-035 編− 本記事は@ITハイブックスシリーズ「Java2ラーニングブック −310-035 編−」(技術評論社)から、一部の内容を編集し転載したものです。本書の詳細は「@ITハイブックス」サイトでご覧いただけます。 |
![]() |
TechTargetジャパン
- EclipseでScalaプログラミングを始めるための基礎 (2012/2/10)
概要や5つの特徴を紹介し、開発環境を構築して対話型実行環境「REPL」やEclipse上でHello Worldを実行します - 並列分散処理の常識をHadoopファミリから学ぶ (2012/2/8)
並列分散処理の課題やHadoopの長所/短所、そして短所を補うHadoop関連プロジェクトの構成や概要などを簡単に紹介 - WebLogicサーバ最新版「12c」の気になる4つの特徴 (2012/1/31)
久々にメジャーアップグレードしたJavaアプリケーションサーバについて、製品担当者に軽量インストーラなどの特徴を聞いた - GitHubをもっとソーシャルに使いこなすための7つ道具 (2012/1/23)
ソースコードホスティングのGitHub周辺で便利な新サービスが続々登場しているので、まとめて紹介しよう。特に連動クラウド「fluxflex」が注目だ
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -

