当jvm运行起来的时候,它会向系统申请一片内存区(不同的jvm实现可能不同,有些可以使用虚拟内存),并将这块内存分出一部分存储程序创建的对象,传递给方法的参数,返回值,局部变量等等,我们将这块内存称之为“运行时数据区”. 运行时数据区可以划分成PC寄存器,本地方法栈,JAVA栈,堆,方法区.PC寄存器,本地方法栈可以简单的理解为其是为JVM服务的,这两个区域不需要太多关注.对程序员来说,经常关注的就是栈,堆(方法区(常量池)).这里并没有显式的指出常量池.原因如下图: 栈:即虚拟机栈.每个方法被