遇上鹅厂面试--JVM我也能和面试官说上半小时

背景

最近小编出去找机会,随便看下自己的竞争力。当遇上腾讯面试官时,看你简历上写了熟悉JVM,你能和我聊聊JVM垃圾收集器吗?

好的我要开始装逼了:

JVM垃圾收集器,主要有串行垃圾收集器,并行垃圾收集器,CMS垃圾收集器,G1垃圾收集器。
在JDK8之前,用的是CMS垃圾收集器,JDK9开始使用的是G1垃圾收集器。
我们先说下JVM的内存模型,主要是由堆、栈、本地方法区、程序计数器,永久代/元素空间。
在这里插入图片描述
堆又分为年轻代和年老代。年轻代分为Eden,Survivor1、Survivor2区,当Eden区内存满的时候回触发young gc,使用的是复制算法,复制算法有个缺点是会需要两倍的空闲空间。
当年老代内内存满的时候会触发full gc,使用的算法是标记清除算法。流程是
1,初始化标记(STW) 2,并发标记 3,预清除 4 ,重新标记(STW) 5,并发清除。

G1垃圾收集器的特点:取消了年轻代和年老代在物理区域上的划分,将堆划分成若干个区域,这里就不用考虑单个区域内存溢出的问题了 。新增加了H区,用来存大对象,当有大对象的时候,不会提前触发full gc,可以减少stw时间。当老年代内存达到45%的时候(默认设置,可以修改),会触发mixed gc。 触发full gc的时候主要流程是 1,初始化标记 2,并发标记 3,最终标记 4,并发清除。full gc的时候使用复制算法不会产生碎片化的问题。利用多cpu可以减少stw时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值