程序计数器:是一块线程独有的内存空间。可以看作是当前线程的字节码执行的行号指示器。
java虚拟机栈:是每一个线程都会创建的内存空间,其中存放了局部变量表、操作数栈、动态链接、方法出口等信息。
本地方法栈:与java虚拟机栈类似,但是存放的是native方法的信息。
java堆:线程共享,虚拟机启动就会创建,是虚拟机垃圾回收的主要区域,java堆得内存分配可以为逻辑上连续,但物理上不连续。
方法区:线程共享,存放已被虚拟机加载的类信息、常量、静态变量、即时编译器编译的代码等数据。
方法区中存放有常量,存放常量的内存,就是运行时常量池,用于存放编译期生成的各种字面量和符号引用。