new キーワードによって作成されたオブジェクト本体は「ヒープ領域」に確保されます。
変数にはヒープ領域上のオブジェクトのメモリ番地が格納されるため、参照型変数を別の変数に代入(str2 = str1)した場合、オブジェクトの複製が作成されるのではなく、「同じオブジェクトを指す2個目のリモコンが作られる」ことになります。
したがって、一方の変数を通じてオブジェクトの状態を変更すると、もう一方の変数から見た状態も変化します(Stringのような不可変オブジェクトを除く)。
ヒープ上のオブジェクトがどの変数からも参照されなくなった場合、ガベージコレクションの回収対象となります。
== を使用すると「同じメモリ番地(オブジェクト実体)を指しているか」を比較します。オブジェクトの中身(文字列の内容など)が同一かを比較したい場合は、必ず equals() メソッドを使用しなければなりません。
2. NullPointerException(NPE):null が代入されている参照型変数に対してメソッド呼び出しやフィールド参照を行うと、実行時に NullPointerException が発生します。
3. 配列も参照型:int[] などのプリミティブ型の配列であっても、配列自体は参照型オブジェクトとしてヒープ領域に配置される点に注意してください。
ファクトチェック:1Z0-825-JPN(2026-08-01確認)。試験番号1Z0-825-JPN、試験時間90分、60問、合格ライン65%です。
この記事は公式出題範囲・チェックリストとの対応を編集部で確認した学習解説です。