几道高频的JVM面试题

本文整理了六道关于JVM的面试重点,包括JVM内存分区原因、新生代eden和survivor区设计、GC流程、CMS与G1收集器区别、JVM调优策略以及CPU飙升的排查方法。通过这些内容,帮助开发者更好地理解和优化Java应用的性能。
摘要由CSDN通过智能技术生成

前言

大家好。我整理了几道高频的JVM面试题,小伙伴们加油呀!

  • JVM内存为什么要分成新生代,老年代

  • 新生代中为什么要分为Eden和Survivor

  • JVM中一次完整的GC流程是怎样的

  • CMS收集器和G1收集器的区别

  • JVM 调优

  • CPU飙升如何排查

1. JVM内存为什么要分成新生代,老年代?

1.1 JVM共享内存划分

  • 共享内存区 = 持久代 + 堆(jdk1.8及以上jvm废弃了持久代)

  • 持久代 = 方法区 + 其他

  • Java堆 = 老年代 + 新生代

  • 新生代 = Eden + S0 + S1

1.2 为什么分年老代和新生代

  • 新生代:主要存放新创建的对象,内存大小一般会比较小,垃圾回收会比较频繁。

  • 老年代(Tenured Gen):主要存放JVM认为生命周期比较长的对象(经过几次的Young GC的垃圾回收后仍然存在),或者大对象,垃圾回收也相对没有那么频繁。

为什么划分老年代和新生代,主要 对象大小不一样,对象生命周期不一样。划分后,提供垃圾回收效率,节省资源,提升对象利用率 等等。

2. 新生代为何划分Eden和Survivor?为什么设置两个Survivor

  • 如果没有Sur

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值