Java 17 Silver ・ 4. クラスの定義とインスタンスの使用
Java クラスの定義とインスタンス化とオブジェクトのライフサイクル の練習問題と解説
Java 17 Silver ラボ の「4. クラスの定義とインスタンスの使用 › Java クラスの定義とインスタンス化とオブジェクトのライフサイクル」の問題 7 問を載せています。問題を開くと、正解と選択肢ごとの解説が読めます。
Java クラスの定義とインスタンス化とオブジェクトのライフサイクル について
new で作ったオブジェクトが、どこからも参照されなくなるまでの一生を追う分類です。参照変数の動きと、ガベージコレクション (GC) の対象になる時点を確かめます。
インスタンス変数はオブジェクトごとに別々に持ちます。b = a; は参照のコピーなので、a と b は同じオブジェクトを指します。null の変数でインスタンスメソッドを呼ぶと NullPointerException です。中身が同じでも、別々に new した 2 つのオブジェクトは == で false になります。
GC の対象になるのは、どの変数からもたどれなくなったオブジェクトです。問題では、行ごとにどの変数がどのオブジェクトを指しているかを図に描き、矢印が 1 本も来なくなったものを数えます。System.gc() は GC を依頼するだけで、すぐに実行されるとは限りません。
問題 (7 問)
- インスタンスごとのフィールド
- 参照をコピーしたとき
- null の参照でメソッドを呼ぶ
- GC の対象になるオブジェクトの数
- GC の対象になるタイミング
- System.gc() の働き
- 同じ内容の2つのインスタンス
「Java クラスの定義とインスタンス化とオブジェクトのライフサイクル」をこのサイトで解く
広告