*************************************优雅的分割线 **********************************

分享一波:程序员赚外快-必看的巅峰干货

Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象。

在 Java 中,堆被划分成两个不同的区域:新生代 ( Young )、老年代 ( Old )。其中新生代 ( Young ) 又被划分为三个区域:Eden、From Survivor、To Survivor。

这样划分的目的是为了使 JVM 能够更好的管理堆内存中的对象,包括内存的分配以及回收。

堆的内存模型大致为:

默认的,新生代 ( Young ) 与老年代 ( Old ) 的比例的值为 1:2 ( 该值可以通过参数 –XX:NewRatio 来指定 ),即:新生代 ( Young ) = 1/3 的堆空间大小。老年代 ( Old ) = 2/3 的堆空间大小。其中,新生代 ( Young ) 被细分为 Eden 和 两个 Survivor 区域,这两个 Survivor 区域分别被命名为 from 和 to,以示区分。

默认的,Edem : from : to = 8 : 1 : 1 ( 可以通过参数 –XX:SurvivorRatio 来设定 ),即: Eden = 8/10 的新生代空间大小,from = to = 1/10 的新生代空间大小。

根据垃圾回收机制的不同,Java堆有可能拥有不同的结构,最为常见的就是将整个Java堆分为

新生代和老年代。其中新生带存放新生的对象或者年龄不大的对象,老年代则存放老年对象。

新生代分为den区、s0区、s1区,s0和s1也被称为from和to区域,他们是两块大小相等并且可以互相角色的空间。

绝大多数情况下,对象首先分配在eden区,在新生代回收后,如果对象还存活,则进入s0或s1区,之后每经过一次

新生代回收,如果对象存活则它的年龄就加1,对象达到一定的年龄后(默认15),则进入老年代。

新生代:存放刚出生不久的对象

老年代:存放比较活跃、经常被引用的对象

垃圾回收机制在新生代比较频繁

*************************************优雅的分割线 **********************************

分享一波:程序员赚外快-必看的巅峰干货

如果以上内容对你觉得有用,并想获取更多的赚钱方式和免费的技术教程

请关注微信公众号:HB荷包

一个能让你学习技术和赚钱方法的公众号,持续更新

jvm详解 - 新生代与老年代相关推荐

  1. jvm对象从新生代到老年代_深入理解jvm内存模型以及gc原理

    整体架构 Jvm = 类加载器 + 执行引擎 + 运行时数据区域 类加载器 ● 作用 类加载器是将编译好的class文件加载到内存中,并进行验证.初始化等步骤,形成能被jvm直接使用的类型. ● 加载 ...

  2. jvm对象从新生代到老年代_JVM内存管理、JVM垃圾回收机制、新生代、老年代以及永久代...

    内存模型 JVM运行时数据区由程序计数器.堆.虚拟机栈.本地方法栈.方法区部分组成,结构图如下所示. JVM内存结构由程序计数器.堆.栈.本地方法栈.方法区等部分组成,结构图如下所示: 1)程序计数器 ...

  3. jvm对象从新生代到老年代_一文搞懂JVM新生代、老年代和永久代

    Java堆是垃圾收集器管理的主要区域,因此很多时候也被称为"GC堆". 从内存回收角度看,由于现在收集器基本都采用分代收集算法,所以Java堆中还可以细分为:新生代和老年代.再细致 ...

  4. JVM中的新生代和老年代(Eden空间、两个Survior空间)

    现有的主流JVM分别是HotSpot和JRockit,主要研究对象也是这两个.这篇文章里,我们只研究HotSpot,也就是所谓的Sun JVM.目前阶段,Sun的GC方式主要有CMS和G1两种.考虑到 ...

  5. JVM中的新生代和老年代

    JVM在程序运行过程当中,会创建大量的对象,这些对象,大部分是短周期的对象,小部分是长周期的对象,对于短周期的对象,需要频繁地进行垃圾回收以保证无用对象尽早被释放掉,对于长周期对象,则不需要频率垃圾回 ...

  6. 深入jvm之对象如何进入老年代

    简介 我们知道,整个jvm堆分为新生代和老年代,新生代的对象在进行垃圾回收的时候,可能会进入到老年代,那么我们知道年轻代的对象是如何进入到老年代的吗? 年轻代空间分配 新生代分成Eden,Surviv ...

  7. java 堆中的永久代_JVM中的堆的新生代、老年代、永久代详解

    JVM中的堆一般分为三大部分:新生代.老年代.永久代,其大致的占比如下: 一.新生代 新生代主要用来存放新生的对象.一般占据堆空间的1/3.在新生代中,保存着大量的刚刚创建的对象,但是大部分的对象都是 ...

  8. JVM堆内存(新生代,老年代,Xms,Xmx)学习整理

    JVM堆内存 jvm堆内存主要分为新生代和老年代,当垃圾收集器触发GC的时候会对堆内存长时间没用的对象分代进行回收,新生代和老年代内存占比为1:2. 文章目录 JVM堆内存 新生代 1.Eden区 2 ...

  9. Java当中jvm运行时区域新生代、老年代、永久代和Garbage Collection垃圾回收机制【杭州多测师】【杭州多测师_王sir】...

    1.本地方法栈和程序计数器 ==>偏底层一般不会接触到 2.方法区 ==>对应为永久代 3.虚拟机栈(stack) ==>对应为栈 4.堆(heap) ==>对应里面有新生代+ ...

最新文章

  1. Thread start()方法和run()方法的区别
  2. 写了个Python脚本监控nginx进程
  3. 在请求和响应中使用 XML
  4. MS SQL的存储过程
  5. UA MATH564 概率论 高阶矩的计算:有限差算子方法2
  6. SLG手游Java服务器数据管理方案
  7. 什么是Ext(ExtJs)【转载】
  8. Map接口的实现类HashMap的操作
  9. Python学习笔记——GIF倒放处理
  10. python导入mysqldb_Python导入MySQLdb报错
  11. 使用DataTables合并行
  12. python软件源码下载_【图片】分享一段功能非常简陋的python代码实现下载free种【pt吧】_百度贴吧...
  13. 云服务器发送开锁信息给单车,史上超全共享单车车锁的开锁方式(含具体方案)...
  14. 【算法设计与分析】专栏目录
  15. 大学十年(一个程序员的路程)(林锐博士)《1----9》
  16. MacBook关闭系统更新
  17. 中外文献图书网址汇总
  18. 微信小程序系列开发(一)
  19. Hibernate第四篇【集合映射、一对多和多对一】
  20. 固定资产管理系统怎么选,详细评测为你解答

热门文章

  1. c调用python第三方库_Python使用ctypes模块调用DLL函数之C语言数组与numpy数组传递...
  2. 各种抠图动态图片_不用手。自动、智能抠图,图片去背景
  3. java只修改变的字段_java注解之运行时修改字段的注解值操作
  4. 30行python代码设计_30行Python代码实现3D数据可视化
  5. 数据分析专题报告范文6篇_小学生看图写话范文:小熊玩跷跷板?(6篇),让孩子参考练习...
  6. (2021) 24 [持久化] 文件系统API
  7. html计算x的y,HTML5画布:旋转时计算x,y点
  8. java post get 请求_java get post 请求
  9. 阿里云rds for mysql平台介绍_阿里云RDS for MySQL 快速入门——笔记
  10. 使用conda/pip安装pytorch 0.3.1教程(mac/windos/linux) pytorch 0.2.1