JVM 什么样的对象会直接进入老年代?
2023-06-13 09:16:08 时间
B站搜索“乐哥聊编程“有本篇文章配套视频 https://www.bilibili.com/video/BV1aY411o7in/
面试题
为什么设置这些机制,让对象提前进入老年代呢?
大对象直接进入老年代
什么是大对象呢,这个是由jvm定义的参数值决定的,但是这个参数只在Serial和ParNew垃圾收集器中生效 :-XX:PretenureSizeThreshold
当我们新分配的对象大小大于等于这个值,就会直接在老年代中分配
长期存活的对象将进入老年代
在每个对象的头信息中,都包括一个年龄计数器
对象在经过一次minor gc之后,如果仍然存活,并且能够被 survior所容纳 ,那么这个年龄计数器就会加一,当计数器的值达到了默认值大小(一般默认值为15),就会进入到老年代。
对象动态年龄判断后决定是否进入老年代
当survior区域的存活对象的总大小占用了survior区域大小的50%(可以通过参数指定),那么此时将按照这些对象的存活年龄从从到大排序,然后依次累加,当累加到对象大小超过50%,则将大于等于当前对象年龄的存活对象全部挪到老年代。
相关文章
- 一次性聊透JVM架构设计,就算八股文也得会
- JVM内存与垃圾回收篇第2章类加载子系统
- jvm内存模型、jvm内存结构、Java内存结构、Java内存模型(JMM)、Java对象模型的区别(吐血研究整理)
- 深入浅出JVM调优,看完你就懂
- JVM运行时数据区-方法区
- jvm参数学习
- 看一看JVM垃圾回收算法
- JVM学习- - -虚拟机栈详解
- JVM:并发的可达性分析
- Jvm参数配置详解程序员
- JVM的内部组成详解编程语言
- JVM面试题详解编程语言
- 参数调整Linux系统下JVM参数的步骤(linux设置jvm)
- Efficiently Monitor JVM Memory on Linux with These Simple Tips(linux监控jvm内存)
- Linux查看JVM内存使用情况指南(linux查看jvm内存)
- 如何在Linux上查看JVM运行信息(Linux查看jvm)
- Linux 系统 JVM 日志分析指南(linux jvm 日志)
- 如何在Linux下修改JVM参数配置(linux修改jvm参数)
- 解锁Oracle指引你的JVM下载之旅(jvm下载oracle)
- Oracle JVM安装指南(oracle jvm安装)
- 基于JVM调优的技巧总结分析
- jvm内存溢出解决方法(jvm内存溢出怎么解决)
- Java虚拟机JVM性能优化(一):JVM知识总结