JVM模型架构图
一、方法区
Method Area 方法区也是JVM内存模型中的重要内存区域,主要用于存放常量和类的定义信息。与Heap类似,也是被JVM中的线程共享。
常见异常:当方法区无法满足内存分配需求时,将抛出OutOfMemeryError异常
二、java 堆
Heap,java运行时内存中最重要的部分,此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存,分为新生代和老年代两部分,分别用于存放刚刚产生的对象和年轻的对象;如果对象一直没被回收,则被移入老年代。
1、新生代又进一步细分为 eden、survivor(s0,s1)
1)Eden
伊甸园,对象的出生地,大部分刚刚创建的对象会被放在Eden区。
2)Survivor
幸存区,存放那些经历过至少一次回收幸存下来的对象。如果幸存区中的对象到了指定年龄仍未被回收,则有机会进入老年代 Tenured。
注:堆是线程共享的
2、常见异常
如