面试题,谈谈你对java垃圾收集器的理解
2015-04-01 16:23
603 查看
面试中经常会问Java垃圾收集器相关的东西,我想以下答案才是面试官想要的。内容来自周志明著《深入理解Java虚拟机》的总结
1、哪些内存需要回收
通过根搜索法,对经过一次标记之后,仍没有复活的对象。
哪些对象可以作为根:虚拟机栈中引用的对象、方法去中的类静态属性引用对象、方法区中的常量引用的对象、本地方法栈JNI的引用对象
注意:很多时候应聘的人会回答通过引用计数法来判断,虽然引用计数法效率很高,但Java中并没有采用,因为无法解决对象之间相互引用的问题
2、何时回收
在eden区满,无法为新生代对象分配内存的时候触发minor(少量的) gc;进去老年代的对象无法分配足够的内存空间 触发full gc;
minor gc:频繁,速度快
full gc:一般比minor gc 慢10倍以上
3、如何回收
新生代对象,使用复制的算法
老年代,标记--清除算法
新生代、老年代都有相应的收集器,并且种类繁多,大多都是相互配合使用的,有的并行,有的串行,有的先暂停在收集等等,这一块内容较多,详情请参见《深入
理解Java 虚拟机》
1、哪些内存需要回收
通过根搜索法,对经过一次标记之后,仍没有复活的对象。
哪些对象可以作为根:虚拟机栈中引用的对象、方法去中的类静态属性引用对象、方法区中的常量引用的对象、本地方法栈JNI的引用对象
注意:很多时候应聘的人会回答通过引用计数法来判断,虽然引用计数法效率很高,但Java中并没有采用,因为无法解决对象之间相互引用的问题
2、何时回收
在eden区满,无法为新生代对象分配内存的时候触发minor(少量的) gc;进去老年代的对象无法分配足够的内存空间 触发full gc;
minor gc:频繁,速度快
full gc:一般比minor gc 慢10倍以上
3、如何回收
新生代对象,使用复制的算法
老年代,标记--清除算法
新生代、老年代都有相应的收集器,并且种类繁多,大多都是相互配合使用的,有的并行,有的串行,有的先暂停在收集等等,这一块内容较多,详情请参见《深入
理解Java 虚拟机》
相关文章推荐
- 探索深入理解java虚拟机之垃圾收集(4)
- (1)深入理解java虚拟机笔记整理之垃圾收集那点事儿
- 《深入理解 Java 虚拟机》- 笔记 - HotSpot 的垃圾收集算法实现
- 【JAVA面试题】之一:第几行的obj符合垃圾收集器的收集标准?
- Java垃圾回收(三)垃圾收集器---深入理解Java虚拟机
- [jjzhu学java]之深入理解JVM之垃圾收集器与内存分配策略
- 深入理解Java虚拟机3~垃圾收集器参数总结
- 深入理解Java G1垃圾收集器
- 深入理解Java虚拟机JVM高级特性与最佳实践阅读总结——第三章垃圾收集器与内存分配策略
- 谈谈Java语言的垃圾收集器
- java面试-深入理解JVM(五)——HotSpot垃圾收集器详解
- 深入理解Java 虚拟机(周志明)笔记(五)——垃圾收集器(二)
- 谈谈Java语言的垃圾收集器
- java面试-深入理解JVM(三)——垃圾收集策略详解
- 深入理解Java 虚拟机(周志明)笔记(五)——垃圾收集器(三)
- Java面试题之谈谈你对Struts的理解
- [Understanding Java Garbage Collection]理解Java垃圾收集(二)
- 转:深入理解Java G1垃圾收集器
- [Understanding Java Garbage Collection]理解Java垃圾收集(一)
- 深入理解JVM(5) : Java垃圾收集器