真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

深入淺析JVM中的垃圾收集器-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線(xiàn)動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買(mǎi)多久送多久,劃算不套路!

站在用戶(hù)的角度思考問(wèn)題,與客戶(hù)深入溝通,找到潮南網(wǎng)站設(shè)計(jì)與潮南網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶(hù)體驗(yàn)好的作品,建站類(lèi)型包括:成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、主機(jī)域名、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋潮南地區(qū)。

這篇文章將為大家詳細(xì)講解有關(guān)深入淺析JVM中的垃圾收集器,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

說(shuō)起垃圾收集(Garbage Collection,GC),大部分人都把這項(xiàng)技術(shù)當(dāng)做Java語(yǔ)言的伴生產(chǎn)物。事實(shí)上,GC的歷史遠(yuǎn)比Java久遠(yuǎn),1960年誕生于MIT的Lisp是第一門(mén)真正使用內(nèi)存動(dòng)態(tài)分配和垃圾收集技術(shù)的語(yǔ)言。當(dāng)List還在胚胎時(shí)期時(shí),人們就在思考GC需要完成的3件事情:

  1. 哪些內(nèi)存需要回收?
  2. 什么時(shí)候回收?
  3. 如何回收?

一、哪些內(nèi)存需要回收?

從JVM區(qū)域結(jié)構(gòu)看,可將這些區(qū)域劃分為“靜態(tài)內(nèi)存”和“動(dòng)態(tài)內(nèi)存”兩類(lèi)。程序計(jì)數(shù)器、虛擬機(jī)棧、本地方法3個(gè)區(qū)域是“靜態(tài)”的,因?yàn)檫@幾個(gè)區(qū)域的內(nèi)存分配和回收都具備確定性,都隨著線(xiàn)程而生,隨著線(xiàn)程而滅。但Java堆和方法區(qū)不一樣,內(nèi)存分配都存在不確定性,只有在程序處于運(yùn)行期間才能知道會(huì)創(chuàng)建哪些對(duì)象,這部分內(nèi)存和回收都是動(dòng)態(tài)的,垃圾收集器所關(guān)注的是這部分內(nèi)存。

在堆里面存放著Java世界幾乎所有的對(duì)象實(shí)例,垃圾回收器在對(duì)堆進(jìn)行回收前,第一件事情就是就是要確定這些對(duì)象哪些還"存活"著,哪些已經(jīng)"死去"。那么又怎么確定對(duì)象已經(jīng)"死去"呢?

1.引用計(jì)數(shù)法:

分配對(duì)象時(shí)給對(duì)象添加一個(gè)引用計(jì)數(shù)器,每當(dāng)有一個(gè)地方引用它時(shí),計(jì)數(shù)器值就加1;當(dāng)引用失效時(shí),計(jì)數(shù)器值就減1;任何時(shí)刻計(jì)數(shù)器為0的對(duì)象就是沒(méi)有再被使用了??陀^地說(shuō),引用計(jì)數(shù)法(Reference Counting)的實(shí)現(xiàn)簡(jiǎn)單,判斷效率也很高,但是在主流的Java虛擬機(jī)里面沒(méi)有選用引用計(jì)數(shù)法來(lái)管理內(nèi)存,其中最主要的原因是它很難解決對(duì)象之間相互循環(huán)引用的問(wèn)題。例如:

public class ReferenceCountingGC {
 public Object instance = null;
 private byte[] bigsize = new byte[2*1024*1024];
 public static void testGC(){
 ReferenceCountingGC objA = new ReferenceCountingGC();
 ReferenceCountingGC objB = new ReferenceCountingGC();
 objA.instance = objB;
 objB.instance = objA;
 objA = null;
 objB = null;
 System.gc();
 }
}

分享標(biāo)題:深入淺析JVM中的垃圾收集器-創(chuàng)新互聯(lián)
本文地址:http://weahome.cn/article/dpjijc.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部