JVM详解,学习记录

JVM
    类加载器
        加载
            引导类加载器
            扩展类加载器
            系统类加载器(最上级的加载器,加载如rt.jar)
        链接
            验证
            准备
            解析
        初始化
    运行时数据区
        线程私有
            程序计数器
            java虚拟机方法栈
                栈帧(存储本次执行的信息)
                    局部变量表
                    操作数栈
                    动态链接
                    方法出口
            本地方法栈(Native方法)
        线程共有
            堆(存储对象)
字符串常量池(方法区中GC效率较低)
                新生代(默认占1/3)
                    Eden区(默认占比8:1:1)
                    Survivor区(又分为 S0、S1)
                老年代(默认占2/3)
            方法区(存储已加载的类信息)
                常量池
                元空间(使用本地内存)
    执行引擎
        即时编译器(JIT)
            代码优化器
            目标代码生成器
            中间代码生成器
            分析器
        垃圾收集器(GC)
作用于堆和方法区
            判断对象是否为垃圾对象
                引用计数算法
                可达性分析算法
                三色标记算法
            垃圾回收阶段算法
                标记-复制算法
                    优点:运行高效,不会出现“碎片”问题
                    缺点:需要的内存空间较大
                    应用场景:回收的垃圾较多时,该算法性价比最高,所以应用于新生代
                标记-清除算法
                    优点:容易理解
                    缺点:效率不高,清理出来的内存空间不连续,会产生内存碎片
                标记-清除-整理算法
                    优点:消除了内存碎片,消除了复制算法中内存减半的高额代价
                    缺点:效率低于复制算法,移动过程中,需要暂停用户应用程序,出现STW(stop the world)的情况
                    应用场景:老年代
            垃圾回收器分类
                单线程垃圾回收器(Serial)
                    新生代
                        Serial 串行垃圾回收器
                    老年代
                        Serial Old 串行老年垃圾回收器
                多线程垃圾回收器(Parallel)
                    新生代
                        Parallel Scavenge 并行垃圾回收器
                        ParNew 并发垃圾回收器
                    老年代
                        Parallel Old
                        CMS(并发标记清除)
                            初始标记 STW
                            并发标记
                            重新标记 STW
                            并发清除 耗时最久,但可与用户线程同时进行
                    G1(垃圾优先)
                        划分区域和区域优先级机制,每次回收优先级最高的区域
                        将堆划分为若干个Region,每个Region是一种角色
                            Eden区
                            Survivor区
                            老年代区
                            Humongous(极大的区域) 存储大于region容量一半的对象
                        回收流程
                            初始标记 STW
                            并发标记
                            最终标记 STW
                            筛选回收  (GC线程基于垃圾比例和空间利用率等信息决定回收哪些区域)
                            并发清理 启动并发清理线程来并发清理,并回收堆内存
    本地库接口

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值