Kodrill

Java SE 17 Silver (1Z0-825-JPN) 試験 / クラスの定義とインスタンスの使用 ・ 無料問題 1/3

クラスの定義とインスタンスの使用 問題1[Javaクラスの定義とインスタンス化とオブジェクトのライフサイクル]

次のコードの // ここ の時点で、ガベージコレクションの対象になるオブジェクトとして正しいものを選んでください。

Main.java
public class Main {    public static void main(String[] args) {        Object a = new Object(); // (1)        Object b = new Object(); // (2)        Object c = a;        a = null;        b = c;        c = null;        // ここ    }}

選択肢

  • A.(1) で生成したオブジェクトだけ
  • B.(2) で生成したオブジェクトだけ正解
  • C.(1) と (2) の両方
  • D.どちらも対象にならない

解説

参照の動きを追うと、c が (1) を指し、a が null になり、b に c の値 (つまり (1) への参照) が代入され、最後に c が null になります。(1) は b から参照されているので対象になりません。(2) を指していた唯一の変数 b が (1) を指すように変わったため、(2) はどこからも参照されなくなり、ガベージコレクションの対象になります。

「クラスの定義とインスタンスの使用」の無料問題

ここで公開しているのは無料範囲の問題です。無料登録すると、解答の記録・ダッシュボードでの復習ができ、 プレミアムならこの問題セットの全問題と本番形式の模擬試験も解けます。