根据JVM规范,JVM内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。 方法栈:线程创建时产生,方法执行时生成栈帧。 方法区:存储类的元数据、常量等。 堆:Java代码中所有的new操作。 非堆:JVM自用的区域,方法区、JVM内部处理、类方法、构造方法等。