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。