“面试不败计划”:垃圾垃圾回收
1、你知道哪些垃圾回收算法?
垃圾回收從理論上非常容易理解,具體的方法有以下幾種:
更詳細的內(nèi)容參見深入理解垃圾回收算法:
http://blog.csdn.net/dd864140130/article/details/50084471
2、如何判斷一個對象是否應(yīng)該被回收
這就是所謂的對象存活性判斷,常用的方法有兩種:
1.引用計數(shù)法;
2:對象可達性分析.
由于引用計數(shù)法存在互相引用導致無法進行GC的問題,所以目前JVM虛擬機多使用對象可達性分析算法.
3、簡單的解釋一下垃圾回收
Java 垃圾回收機制最基本的做法是分代回收。內(nèi)存中的區(qū)域被劃分成不同的世代,對象根據(jù)其存活的時間被保存在對應(yīng)世代的區(qū)域中。一般的實現(xiàn)是劃分成3個世代:年輕、年老和永久。內(nèi)存的分配是發(fā)生在年輕世代中的。當一個對象存活時間足夠長的時候,它就會被復制到年老世代中。對于不同的世代可以使用不同的垃圾回收算法。進行世代劃分的出發(fā)點是對應(yīng)用中對象存活時間進行研究之后得出的統(tǒng)計規(guī)律。一般來說,一個應(yīng)用中的大部分對象的存活時間都很短。比如局部變量的存活時間就只在方法的執(zhí)行過程中。基于這一點,對于年輕世代的垃圾回收算法就可以很有針對性.
4、調(diào)用System.gc()會發(fā)生什么?
通知GC開始工作,但是GC真正開始的時間不確定.
總結(jié)
以上是生活随笔為你收集整理的“面试不败计划”:垃圾垃圾回收的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “面试不败计划”:面试题基础三
- 下一篇: “面试不败计划”:集合、日期、异常、序列