JVM-运行时数据区(3)

157 阅读1分钟

05.JVM-运行时数据区.jpg

虚拟机栈

关于虚拟机栈的介绍在JVM-整体结构(1)有详细的介绍,再此就不浪费篇幅编写了。

  • JDK1.7
    • 新生代+老年代+永久代(PermSpace
  • JDK1.8
    • 新生代+老年代+元空间(MetaSpace
  • 新生代
    • Eden区
    • S0区
    • S1区
  • 老年代 下图主要描述了Eden区出现GC时丢弃未引用的对象(ojb4、obj5),将(obj1、obj2、obj3)对象放入S0区,当(obj11、obj12)进入Eden区时发现此时空间不足,所以再此出现GC,此时将对新生代区未引用对象回收,发现S0区中的(obj3)未引用所以将对其GC操作,然后将(obj11、obj12)放入Eden区,同时将(obj1、obj2)其余对象进入S1区,当S1区的对象年龄计数器达到15时该对象晋升到老年代区。 02.JVM-虚拟机栈 (1).jpg

MinorGC触发机制

当年轻代空间不足时就会触发,年轻代指的是Eden区,不是S0或S1区。

FullGC触发机制

当开发者调用System.gc()时系统建议执行FullGC,不是必然的。

元空间

  • 常量池
  • 方法元信息
  • 类元信息