Java垃圾收集題目分析


【考題題干】關於垃圾收集的哪些敘述是對的?
A.垃圾收集將檢查並釋放不再使用的內存。
B.垃圾收集允許程序開發者明確指定並立即釋放該內存。
C.程序開發者必須自己創建一個線程進行內存釋放的工作。
D.垃圾收集能夠在期望的時間釋放被 Java 對象使用的內存。
【試題分析】Java 語言將內存分配和釋放的工組交給了自己,程序員不必做這些工作,它提供一個

系統級的線程跟蹤每個內存的分配,在 JVM 的空閑處理中,垃圾收集線程將檢查和釋放不再使用的內
存(即可以被釋放的內存)。垃圾收集的過程在 Java 程序的生存期中是自動的,不需要分配和釋放內存,
也避免了內存泄漏。可以調用 System.gc()方法建議 JVM 執行垃圾收集以使得可被釋放的內存能立即被
使用,當此方法返回的時候, JVM 已經做了最大的努力從被丟棄的對象上回收內存空間。程序員不能指
定收集哪些內存,一般而言也不用關心這個問題,除非是程序的內存消耗很大,特別是有很多臨時對象
時可以“建議“進行垃圾收集以提高可用內存。需要指出的是調用 System.gc()方法不能保證 JVM 立即
進行垃圾收集,而只能是建議,因為垃圾收集線程的優先級很低(通常是最低的)。
JVM 垃圾收集器收集一個對象之前,一般要求程序調用適當的方法釋放資源,但在沒有明確釋放資
源的情況下,Java 提供了缺省機制來終止化該對象心釋放資源,這個方法就是 finalize(  )。因此選項 A
是正確的。
垃圾收集器不可以被強制執行,但程序員可以通過調用 System. gc 方法來建議執行垃圾收集器。因
此選項 B 是錯誤的。
Java 的垃圾回收機制是為所有 Java 應用進程服務的,而不是為某個特定的進程服務的。因此,任何
一個進程都沒有權利去命令垃圾回收機制做什么、怎么做或做多少。因此選項 C 是錯誤的。
Java 運行時系統只在需要的時候才使用垃圾收集。因此用戶無法知道垃圾回收發生的精確時間。同
樣沒有辦法預知在一組均符合垃圾收集器收集標准的對象中,哪一個會被首先收集。 因此選項 D 是錯誤
的。
【參考答案】A


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM