Jvm基础篇

1 篇文章 0 订阅

        JVM(虚拟机),包括class文件编译区(经过编译的class文件)、类加载器系统(类加载器【自定义加载器、应用程序加载器、扩展类加载器、引导类加载器】)、运行时数据区(如下图)、执行引擎(进行代码的执行操作)、本地方法接口、本地方法库。

        Tip:在jdk1.8之后,针对Hotspot VM,方法区改为元空间,具体变化体现在,元空间使用本地内存,且在配置上也有区别。

jdk1.8之前,为方法区分配大小的参数为:

-XX:PermSize设置持久代Jdk7版本及以前版本
-XX:MaxPermSize设置最大持久代Jdk7版本及以前版本

jdk1.8后:

-XX:MetaspaceSize元空间大小Jdk8版本
-XX:MaxMetaspaceSize最大元空间Jdk8版本

 

1、关于垃圾回收:

垃圾回收主要发生在堆区,堆区划分为新生代和老年代。新生代具体可划分为伊甸园区(Eden区),S0区,S1区。在jvm中Eden:S0:S1比例为8:1:1,该比例通过-XX:SurvivorRatio来调整。

当Eden区满后,根据GCRoot,将其放入S0或者S1区(S0和S1采用复制算法),判断S0和S1存活达15次的对象(:15是默认值可通过-XX:MaxTenuringThreshold=N来调整),将符合条件的对象尝试放入老年代,如果发现老年代放不下,老年代会触发Major GC,再次尝试放入老年代,如果老年代还放不下,触发Full GC(对老年代和新生代进行垃圾回收),如果还放不下,则报OOM。

对于大对象:新生代放不下,触发Minor GC,对新生代进行垃圾回收,如果新生代放不下,则尝试直接放入老年代,如果老年代放不下,触发Major GC,再次尝试放入老年代,如果老年代还放不下,触发Full GC(对老年代和新生代进行垃圾回收),如果还放不下,则报OOM。

2、垃圾回收器

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

抓蛙Sout

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值