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