Java知识整理——垃圾回收
生活随笔
收集整理的這篇文章主要介紹了
Java知识整理——垃圾回收
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
垃圾回收用于識別和丟棄程序不再需要的對象, 以便回收和復用資源.
這些方法用于提醒JVM開始垃圾回收. 然而開始垃圾回收的時機是由JVM決定的.
finallize方法是在釋放該對象內存前由gc(垃圾回收器)調用. 通常建議在這個方法中釋放該對象持有的資源.
不會, 這個對象將會在下一次gc循環中被回收.
JVM有一個運行時數據區,即堆(heap).所有的類實例和數組的內存都是從堆中分配的. 它在JVM啟動時被創建. 對象所占用的堆內存會被一個稱為垃圾回收器的自動內存管理系統收回.
堆內存中包含活的和死的對象. 活的對象可以被程序訪問并且不會被垃圾回收. 死的對象是那些不會被程序訪問的, 但還沒有被垃圾回收器收回的對象. 這種對象會占用堆內存空間直到最終被垃圾回收器收回.
Throughput垃圾回收器使用并行版本的新生代回收器, 它用于中到大型數據集的應用. 另一方面, Serial回收器通常足以應對大多數的小應用(在現代處理器上不會超過約100MB的堆內存).
當當前程序無法訪問到某個對象時,該對象將被回收.
垃圾回收在 PermGen 里發生。如果 PermGen滿了或是到了瓶頸,就會觸發完全回收。如果仔細 觀察垃圾回收過程,會發現PermGen最后也被回收了. 這就是為什么要設置合理的PermGen大小以避免完全垃圾回收. 可以看看這篇文章 Java 8: PermGen to Metaspace.
總結
以上是生活随笔為你收集整理的Java知识整理——垃圾回收的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java知识整理——容器
- 下一篇: Java知识整理——异常处理