JVM运行时数据区域

JVM运行时数据区域
线程私有
1、程序计数器:当前线程执行的字节码的行号指示器。
2、栈:正常所说的是栈中的局部变量表,存放局部变量,包括基本类型以及引用类型的数据,long和double类型的数据会占用2个局部变量空间,其余的数据类型只占用1个,局部变量表所需的内存空间在编译期间完成分配(HotSpot虚拟机中并不区分虚拟机栈和本地方法栈)
线程公用
1、堆:存放对象信息。以及字符串常量池
2、方法区:逻辑上属于对的一部分,但是有别名:非堆。存放的是类信息、常量、静态变量。
3、运行时常量池:当Java文件编译时,class中除了会包含类的信息之外,还会生成常量池。当类加载时,会将常量池中的数据加载到运行时常量池中。