JVM区域总体分两类,heap区和非heap区
Heap区又分为:年轻代(Young Generation)和老年代(Old Generation)。
年轻代是所有新对象产生的地方。当年轻代内存空间被用完时,就会触发垃圾回收。这个垃圾回收叫做Minor GC。
年轻代被分为3个部分—Eden区和两个Survivor区。
老年代内存里包含了长期存活的对象和经过多次Minor GC后依然存活下来的对象,通常会在老年代内存被占满时进行垃圾回收。老年代的垃圾收集叫做Major GC,Major GC通常是跟full GC是等价的,收集整个GC堆。
- Eden Space(伊甸园);
- Survivor Space(2个幸存者区);
- Old Gen(老年代);
非Heap区又分:
- Code Cache(代码缓存区);
- Perm Gen(永久代);JDK1.8之后被元空间替代;Perm Gen全称是Permanent Generation space,称之为永久代,其实指的就是这个方法区。
- Jvm Stack(java虚拟机栈);
- Local Method Statck(本地方法栈);