美文网首页JavaJava 杂谈学习
Java基础学习备忘录(连载之:JVM中的三代)

Java基础学习备忘录(连载之:JVM中的三代)

作者: TAIKEMAN | 来源:发表于2019-07-31 23:14 被阅读0次

本文已收录至我的个人博客,欢迎交流:http://www.swaggyhang.com/

Java虚拟机(JVM)中划分为三个代:

  • 年轻代(Young Generation)
    • 所有新生成的对象首先都是放在年轻代的。
    • 目标:尽可能快速的收集掉那些生命周期短的对象。
    • 年轻代分三个区
      • 一个Eden区,两个Survivor区(一般而言)。
      • 大部分对象在Eden区中生成。
      • 当Eden区满时,还存活的对象将被复制到Survivor区(两个中的一个)。
      • 当这个Survivor区满时,此区的存活对象将被复制到另外一个Survivor区,当这个Survivor去也满了的时候,从第一个Survivor区复制过来的并且此时还存活的对象,将被复制“年老区(Tenured)”。
      • Survivor的两个区是对称的,没先后关系,所以同一个区中可能同时存在从Eden复制过来对象,和从前一个Survivor复制过来的对象,而复制到年老区的只有从第一个Survivor去过来的对象。
      • Survivor区总有一个是空的。
      • Survivor区是可以配置为多个的(多于两个),这样可增加对象在年轻代中的存在时间,减少被放到年老代的可能。
  • 年老代(Old Generation)
    • 在年轻代中经历了N次垃圾回收后仍然存活的对象,就会被放到年老代中。
    • 可认为年老代中存放的都是一些生命周期较长的对象。
  • 持久代(Permanent Generation)。
    • 用于存放静态文件,如:Java类、方法等。
    • 持久代对垃圾回收没有显著影响。
  • 总结:
    • 持久代主要存放的是Java类的类信息,与垃圾收集要收集的Java对象关系不大。
    • 年轻代和年老代的划分是对垃圾收集影响比较大的。

相关文章

  • Java基础学习备忘录(连载之:JVM中的三代)

    本文已收录至我的个人博客,欢迎交流:http://www.swaggyhang.com/ Java虚拟机(JVM)...

  • JVM垃圾回收算法

    Java基础:JVM垃圾回收算法 [toc] 参考:Java基础:JVM垃圾回收算法图解JVM垃圾回收算法 总结:...

  • 技术体系

    一,java核心 java基础,jvm,算法,多线程,设计模式 Java基础:java基础相关,全栈java基础 ...

  • JVM实战优化篇

    在前文《JVM原理解惑篇》中已经梳理了主要的JVM的理论基础:Java程序运行在Java虚拟机之上,JVM管理了整...

  • JVM实战优化篇

    在前文《JVM原理解惑篇》中已经梳理了主要的JVM的理论基础:Java程序运行在Java虚拟机之上,JVM管理了整...

  • Java基础学习备忘录(连载之:集合的选择)

    疑难困惑备忘录之:集合的选择问题。 Java集合类框架的最佳实践有哪些? 一开始还在想,难道有什么经典的算法或者什...

  • JVM基础面试题及原理讲解

    本文从 JVM 结构入手,介绍了 Java 内存管理、对象创建、常量池等基础知识,对面试中 JVM 相关的基础题目...

  • JVM基础面试题及原理讲解

    本文从 JVM 结构入手,介绍了 Java 内存管理、对象创建、常量池等基础知识,对面试中 JVM 相关的基础题目...

  • JVM基础面试题及原理讲解

    本文从 JVM 结构入手,介绍了 Java 内存管理、对象创建、常量池等基础知识,对面试中 JVM 相关的基础题目...

  • JVM基础面试题及原理讲解

    本文从 JVM 结构入手,介绍了 Java 内存管理、对象创建、常量池等基础知识,对面试中 JVM 相关的基础题...

网友评论

    本文标题:Java基础学习备忘录(连载之:JVM中的三代)

    本文链接:https://www.haomeiwen.com/subject/eatfdctx.html