前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >几道高频的JVM面试题

几道高频的JVM面试题

作者头像
用户1263954
发布2022-05-23 15:59:25
2400
发布2022-05-23 15:59:25
举报

前言

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-05-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT技术精选文摘 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 1. JVM内存为什么要分成新生代,老年代?
    • 1.1 JVM共享内存划分
      • 1.2 为什么分年老代和新生代
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档