JVM面试题

CMS垃圾收集器

目标:以获取最短回收停顿时间为目标的收集器

回收区域:老年代

回收算法:标记-清除

回收过程:初始标记——>并发标记——>重新标记——>并发清除

标记算法:使用GC root,可达性分析算法

优点:并发收集,低停顿

缺点:1,CMS收集器对cpu资源非常敏感,cpu要多;

            2,CMS收集器无法处理浮动垃圾(回收过程中新产生的垃圾),可能失败导致一直Full GC;失败原因是预留的内存无法满足程序运行需要。

            3,标记-清楚算法会产生空间碎片,通过参数指定在Full GC时开启内存合并整理。


    GC root对象

1,虚拟机栈(栈帧中本地变量表)中引用的对象

2,方法区中类静态属性引用的对象

3,方法去中常量引用的对象

4,本地方法栈中JNI(native方法)引用的对象


    JVM内存管理

jdk8之前内存划分

hotspot在jdk7中将常量和字符串常量池从方法去移到了堆中。

之前方法区习惯称为永久带;

在jdk8中,永久带已经不存在,存储的类信息,编译的代码数据都已经存储在元空间(MetaSpace);

元空间没有处于堆内存上,而是处于本地内存(NativeMemory);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • JVM架构 当一个程序启动之前,它的class会被类装载器装入方法区(Permanent区),执行引擎读取方法区的...
    cocohaifang阅读 1,847评论 0 7
  • 原文阅读 前言 这段时间懈怠了,罪过! 最近看到有同事也开始用上了微信公众号写博客了,挺好的~给他们点赞,这博客我...
    码农戏码阅读 6,163评论 2 31
  • JVM运行内存的分类程序计数器:当前线程所执行的字节码的行号指示器,用于记录正在执行的虚拟机字节指令地址,线程私有...
    MigrationUK阅读 28,806评论 10 60
  • 这篇文章是我之前翻阅了不少的书籍以及从网络上收集的一些资料的整理,因此不免有一些不准确的地方,同时不同JDK版本的...
    高广超阅读 16,059评论 3 83
  • 对你我来讲,已经足够
    周目标阅读 379评论 0 0

友情链接更多精彩内容