年轻代(Young Generation)、年老代(Old Generation)和持久代(Permanent 
Generation)。其中持久代主要存放的是Java类的类信息,与垃圾收集要收集的Java对象关系
不大。年轻代和年老代的划分是对垃 圾收集影响比较大的。

  • 年轻代

所有新生成的对象首先都是放在年轻代的。年轻代的目标就是尽可能快速的收集掉那些生命周期短的对象。年轻代分三个区。一个Eden区,两个 Survivor区(一般而言)。大部分对象在Eden区中生成。当Eden区满时,还存活的对象将被复制到Survivor区(两个中的一个),当这个 Survivor区满时,此区的存活对象将被复制到另外一个Survivor区,当这个Survivor去也满了的时候,从第一个Survivor区复制过来的并且此时还存活的对象,将被复制“年老区(Tenured)”。需要注意,Survivor的两个区是对称的,没先后关系,所以同一个区中可能同时存在从Eden复制过来对象,和从前一个Survivor复制过来的对象,而复制到年老区的只有从第一个Survivor去过来的对象。而且,Survivor区总有一个是空的。同时,根据程序需要,Survivor区是可以配置为多个的(多于两个),这样可以增加对象在年轻代中的存在时间,减少被放到年老代的可能。

  • 年老代

在年轻代中经历了N次垃圾回收后仍然存活的对象,就会被放到年老代中。因此,可以认

为年老代中存放的都是一些生命周期较长的对象。

  • 持久代

用于存放静态文件,如今Java类、方法等。持久代对垃圾回收没有显著影响,但是有些应用可能动态生成或者调用一些class,例如Hibernate等,在这种时候需要设置一个比较大的持久代空间来存放这些运行过程中新增的类。持久代大小通过-XX:MaxPermSize=<N>进行设置。

年轻代、年老代和持久代相关推荐

  1. 45.JVM调优策略、常见问题:内存泄漏(年老代堆空间被占满、持久代被占满、堆栈溢出、线程堆栈满、系统内存被占满)优化方法:优化目标、优化GC步骤、优化总结;案例分析(公司系统参数、网上给的配置参数)

    45.JVM调优策略 45.1.常见问题 45.1.1.内存泄漏 45.1.1.1.年老代堆空间被占满 45.1.1.2.持久代被占满 45.1.1.3.堆栈溢出 45.1.1.4.线程堆栈满 45. ...

  2. java内存模型 年轻代/年老代 持久区

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

  3. Jave虚拟机划分的三个代: 年轻代、年老代和持久代

    转载自:点击打开链接 虚拟机中的共划分为三个代: 年轻代(Young Generation).年老代(Old Generation)和持久代(Permanent  Generation).其中持久代主 ...

  4. java年轻代和年老代默认比值_JAVA中的GC以及年轻代,年老代,持久代的认识

    java中我们常常谈论到垃圾回收机制,那么,垃圾回收机制又是什么呢?说到JVM调优,似乎很高大上,那么JVM调的都是那些数据呢?伊甸园区,幸存区,年轻代,年老代,持久代,每个词都熟悉又陌生,似乎很深奥 ...

  5. java年轻代_Java分代垃圾回收机制:年轻代/年老代/持久代(转)

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

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

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

  7. JVM的年轻代、年老代(老年代)和永生代(持久代)【Loadrunner性能调优】

    1.为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能.你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我 ...

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

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

  9. GC 年轻代 老年代 持久代

    转载自:http://www.cnblogs.com/yaoyuan23/p/5587548.html 虚拟机中的共划分为三个代:年轻代(Young Generation).老年代(Old Gener ...

最新文章

  1. strtok()思考
  2. doxygen相关问题 转
  3. Get Started with Lightning Knowledge
  4. Spark知识体系完整解读
  5. 在CentOS 6.3中安装与配置JDK-7
  6. oracle 02380,oracle 11.2.0.3 fornb…
  7. 阿里开发者招聘节 | 面试题06-07: MySQL的数据如何恢复到任意时间点
  8. Tornado 错误 Global name 'memoryview' is not defined
  9. 二叉树C++ | 广度优先遍历(层级顺序遍历)_2
  10. 社交界的 Linux,为何败给了 Facebook、Twitter?
  11. 概率论——马尔科夫链
  12. 2019 秋季最新最全面 JAVA 面试题 附答案
  13. 会议报到和撒离时间算会期_会议议程会议日程格式
  14. Debian 7 安装vim
  15. [五一随想] 生活长乐
  16. 联通云OSS上传文件
  17. 利用QProcess::finished信号(signal)来保持目标程序始终运行
  18. 最新代千元机!Redmi Note 9正式发布:性能提升100% 1299元起售!
  19. 缓冲区溢出攻击(含示例)
  20. 统计学简介之十——样本量的确定

热门文章

  1. h3c服务器r4900清空配置信息,H3C R4900 G3服务器HDM初始化配置
  2. 单8通道数字控制模拟电子开关CD4051
  3. C语言——运算符与表达式
  4. [IOS]hitTest的作用与用法【转】
  5. 数据模型建设-维度建模详解
  6. CRC 循环冗余校验码 的计算方法
  7. Fabric 测试网络 - 商业票据
  8. 单目标优化算法测试函数python绘制及相关代码
  9. 在Linux上安装JDK8-教程
  10. Fluter基础巩固之Dart语言详解一