扒一扒JVM的垃圾回收机制,下次面试你准备好了吗
相信和小编一样的程序猿们在日常工作或面试当中经常会遇到JVM的垃圾回收问题,有没有在夜深人静的时候详细捋一捋JVM垃圾回收机制中的知识点呢?没时间捋也没关系,因为小编接下来会给你捋一捋。 一、 技术背景你要了解吧 二、 哪些内存需要回收? 2.1 引用计数算法 2.1.1 算法分析 2.1.2 优缺点 2.1.3 是不是很无趣,来段代码压压惊 2.2 可达性分析算法 2.3 Java中的引用你了解多少 2.4 对象死亡(被回收)前的最后一次挣扎 2.5 方法区如何判断是否需要回收 三、常用的垃圾收集算法 3.1 标记-清除算法 3.2 复制算法 3.3 标记-整理算法 3.4 分代收集算法 3.4.1 年轻代(Young Generation)的回收算法 3.4.2 年老代(Old Generation)的回收算法 3.4.3 持久代(Permanent Generation)的回收算法 四、常见的垃圾收集器 五、GC是什么时候触发的(面试最常见的问题之一) 5.1 Scavenge GC 5.2 Full GC 结束语 一、 技术背景你要了解吧 按照套路是要先装装X,谈谈JVM垃圾回收的前世今生的。说起垃圾回收(GC),大部分人都把这项技术当做Java语言的伴生产物。事实上,GC的历史比Java久远,早在1960年Lisp这门语言中就使用了内存动态分配和垃圾回收技术