java的垃圾回收机制例题讲解
2016-09-29 11:24
453 查看
Java 7中,以上述代码为基础,在发生过一次FullGC后,上述代码在Heap空间(不包括PermGen)保留的字符数为()
5
10
15
20
解析:这是一个关于java的垃圾回收机制的题目。垃圾回收主要针对的是堆区的回收,因为栈区的内存是随着线程而释放的。堆区分为三个区:年轻代(Young Generation)、年老代(Old Generation)、永久代(Permanent Generation,也就是方法区)。
年轻代:对象被创建时(new)的对象通常被放在Young(除了一些占据内存比较大的对象),经过一定的Minor GC(针对年轻代的内存回收)还活着的对象会被移动到年老代(一些具体的移动细节省略)。
年老代:就是上述年轻代移动过来的和一些比较大的对象。Minor GC(FullGC)是针对年老代的回收
永久代:存储的是final常量,static变量,常量池。
str3,str4都是直接new的对象,而substring的源代码其实也是new一个string对象返回,如下图:
经过fullgc之后,年老区的内存回收,则年轻区的占了15个,不算PermGen。所以答案选C
相关文章推荐
- Java的垃圾回收机制详解和调优
- Java的垃圾回收(Garbage Collection)机制
- Java垃圾回收机制详解和调优
- Java的垃圾回收机制
- JVM详解之Java垃圾回收机制详解和调
- Java与C#的垃圾回收机制
- java的垃圾回收机制详解和调优
- Java垃圾回收机制详解和调优
- 【转载】 全面分析Java的垃圾回收机制
- Java垃圾回收机制浅解
- Java 学习笔记 (13) - 基本内存分析 和 垃圾回收机制
- java中的垃圾回收机制GC
- java的垃圾回收机制详解和调优
- 深刻剖析经典面试题之二:Java与C#的垃圾回收机制
- JAVA垃圾回收机制与内存泄露问题
- Java的垃圾回收机制详解和调优大全
- 全面分析Java的垃圾回收机制
- 深刻剖析经典面试题之二:Java与C#的垃圾回收机制
- 全面分析Java的垃圾回收机制
- Java与C#的垃圾回收机制