JVM由Heap和Non-heap构成。
Heap由Young Generation和Tenured Generation(Old Generation)构成;其中Young Generation又由Eden Space和Survivor Space组成;Survivor 0 Space和Survivor 1 Space(亦称为From Space与To Space)组成了Survivor Space。内存由4部分组成:stack segment、heap segment、code segment和data segment。Non-heap由Permanent Generation(Method Area)和Code Cache构成。Permanent Generation存放类的各项信息包括构造、方法、属性等和runtime constant pool等信息。Permanent Generation分为可读区与可写区。在JDK1.8之后,Non-heap由Metaspace、Code Cache和Compressed Class Space组成。
内存由4部分组成:stack segment、heap segment、code segment和data segment。