几道高频的JVM面试题

2022-05-23 15:59:25 浏览数 (1)

前言

大家好,整理了几道高频的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的垃圾回收后仍然存在),或者大对象,垃圾回收也相对没有那么频繁。

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

jvm

0 人点赞