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

在Java堆中存放著幾乎所有的對(duì)象實(shí)例,垃圾收集器在對(duì)堆進(jìn)行回收前,第一件事情就是要知道哪些對(duì)象還“存活著”,哪些對(duì)象已經(jīng)”死去“。

引用計(jì)數(shù)算法

引用計(jì)數(shù)法的實(shí)現(xiàn):給對(duì)象中添加一個(gè)引用計(jì)數(shù)器,每當(dāng)有一個(gè)地方引用它時(shí),計(jì)數(shù)器就加1,當(dāng)引用失效時(shí),計(jì)數(shù)器就減1,只要計(jì)數(shù)器為0的對(duì)象就是不可能被使用的。

這個(gè)算法實(shí)現(xiàn)簡(jiǎn)單,效率也很高,但是當(dāng)存活對(duì)象中,存在相互引用的時(shí)候,這算法就解決不了。所以Java中的GC并沒(méi)有采用引用計(jì)數(shù)法來(lái)管理內(nèi)存。(后面例子分析會(huì)根據(jù)GC日志看出相互引用的對(duì)象被回收了)

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式