System.gc() の働き
ガベージコレクションについて正しい説明はどれか。
- A
System.gc()を呼んでも、すぐに GC が実行されるとは限らない - B
System.gc()を呼ぶと、必ずその場で GC が実行される - C プログラマが delete を呼んでメモリを解放する必要がある
- D 変数に null を代入すると、そのオブジェクトはすぐにメモリから消える
正解と解説を見る
正解: A
- A: System.gc() は「実行してほしい」という依頼で、いつ実行されるかは JVM が決めます。
- B: System.gc() を呼んでも、必ずその場で実行されるとは限りません。
- C: Java には delete はなく、メモリの解放は GC が自動で行います。
- D: null を代入すると GC の対象になるだけで、すぐに消えるわけではありません。
ポイント
- GC はいつ実行されるか決まっていません。
System.gc()は「実行してほしい」という依頼にすぎません。 - null を代入すると「対象になる」だけで、すぐに消えるわけではありません。Java には delete はありません。
「Java クラスの定義とインスタンス化とオブジェクトのライフサイクル」をこのサイトで解く (記録・間違えた問題の解き直し・AI教師への質問)