JVM中的堆一般分为三大部分:新生代、老年代、永久代,其大致的占比如下:

一、新生代

新生代主要用来存放新生的对象。一般占据堆空间的1/3。在新生代中,保存着大量的刚刚创建的对象,但是大部分的对象都是朝生夕死,所以在新生代中会频繁的进行MinorGC,进行垃圾回收。新生代又细分为三个区:Eden区、SurvivorFrom、ServivorTo区,三个区的默认比例为:8:1:1。

Eden区:Java新创建的对象绝大部分会分配在Eden区(如果对象太大,则直接分配到老年代)。当Eden区内存不够的时候,就会触发MinorGC(新生代采用的是复制算法),对新生代进行一次垃圾回收。

SurvivorFrom区和To区:在GC开始的时候,对象只会存在于Eden区和名为From的Survivor区,To区是空的,一次MinorGc过后,Eden区和SurvivorFrom区存活的对象会移动到SurvivorTo区中,然后会清空Eden区和SurvivorFrom区,并对存活的对象的年龄+1,如果对象的年龄达到15,则直接分配到老年代。MinorGC完成后,SurvivorFrom区和SurvivorTo区的功能进行互换。下一次MinorGC时,会把SurvivorTo区和Eden区存活的对象放入SurvivorFrom区中,并计算对

java 堆中的永久代_JVM中的堆的新生代、老年代、永久代详解相关推荐

  1. jvm中的年轻代 老年代 持久代 gc ----------转载

    jvm中的年轻代 老年代 持久代 gc 虚拟机中的共划分为三个代:年轻代(Young Generation).老年代(Old Generation)和持久代(Permanent Generation) ...

  2. 04.Java 堆内存 新生代 老年代?

    Java 中的堆是 JVM所管理的最大的一块内存空间,主要用于存放各种类的实例对象. 在 Java 中,堆被划分成两个不同的区域:新生代 ( Young ).老年代 ( Old ).新生代 ( You ...

  3. java新生代 老年代比例_JVM老年代和新生代的比例

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

  4. 第7.26节 Python中的@property装饰器定义属性访问方法getter、setter、deleter 详解

    第7.26节 Python中的@property装饰器定义属性访问方法getter.setter.deleter 详解 一.    引言 Python中的装饰器在前面接触过,老猿还没有深入展开介绍装饰 ...

  5. GC算法 (标记清除、复制、标记整理、 分代收集) 、 新生代 老年代

    一.标记-清除算法(Mark-Sweep)   1标记阶段:首先通过根节点,标记所有从根节点开始的可达对象.未被标记的对象就是未被引用的垃圾对象 2清除阶段:清除所有未被标记的对象. 不足:1效率问题 ...

  6. java 年轻代算法_java内存模型 年轻代/年老代 持久区,jvm中的年轻代 老年代 持久代 gc...

    虚拟机中的共划分为三个代:年轻代(Young Generation).老年代(Old Generation)和持久代(Permanent Generation).其中持久代主要存放的是Java类的类信 ...

  7. jvm中的年轻代 老年代 持久代 gc

    虚拟机中的共划分为三个代:年轻代(Young Generation).老年代(Old Generation)和持久代(Permanent Generation).其中持久代主要存放的是Java类的类信 ...

  8. Java中的BigDecimal比较大于小于等于,四舍五入保留几位(setScale方法详解),加减乘除取余

    本文主要讲解BigDecimal的比较运算,保留精度和取整和基础运算,BigDecimal与其他数据类型转换. 文章目录 比较运算 保留精度及取整 取整(保留0位小数) 保留精度 基础运算 BigDe ...

  9. 中yeti不能加载_第二十章_类的加载过程详解

    类的加载过程详解 概述 在 Java 中数据类型分为基本数据类型和引用数据类型.基本数据类型由虚拟机预先定义,引用数据类型则需要进行类的加载 按照 Java 虚拟机规范,从 Class 文件到加载到内 ...

最新文章

  1. Windows客户端C/C++编程规范“建议”——宏
  2. 如何使用jQuery替换div的innerHTML?
  3. pig安装部署_【视频系列】K3S 入门到生产部署
  4. 注水法比特功率分配介绍及MATLAB实现
  5. 杭电oj java printf_杭电oj1042题大数,java,百思不得其解为何WA,求指教
  6. ACNet论文阅读笔记
  7. java写入txt文件 不替换_java非覆盖写入文件及在输出文本中换行
  8. 【Java】接口(interface)VS抽象类
  9. leetcode练习:292. Nim Game
  10. Kafka eagle 安装
  11. java 隐藏任务栏,在Java中隐藏Windows任务栏?
  12. [NOI2018]你的名字(68pts)
  13. python脚本转换为EXE文件
  14. 刷脸支付会逐步取代扫码成为主流支付方式
  15. 桌面计算机名水印,去掉电脑桌面的Windows10教育版水印的方法
  16. web eTerm是什么
  17. 平安夜关于苹果的题目——1705. 吃苹果的最大数目
  18. 苹果app-H5封装源码-一键封装app搭建
  19. java cpu 占用率高_java实战CPU占用过高问题的排查及解决
  20. Android -- 广播

热门文章

  1. Q3营收净利双滑坡,寺库成了“没落贵族“?
  2. 我是如何利用AI人工智能开启月赚6000美金的
  3. 对未来的自己说一些悄悄话
  4. 别吃泡面啦,我们来泡个4D打印的机器人出来玩
  5. 华硕ezflash3找不到u盘_华硕笔记本电脑bios里面找不到u盘启动项怎么办
  6. 重温马斯洛需求层次理论
  7. 概率论--随机事件及运算
  8. 超简单!Android 播放流媒体
  9. 【Pytorch-从一团乱麻到入门】:1、Pytorch、jupyter notebook 的安装及设置
  10. C语言网——【求[X,Y]内被除3余1并且被除5余3的整数的和】