目录
Java虚拟机的内存空间分为5个部分:程序计数器、Java虚拟机栈、本地方法栈、堆、方法区。
JDK1.8同JDK1.7,最大的差别就是元数据区取代了永久代。元空间的本质和永久代类似,都是对JVM规范中方法区的实现,不过元空间与永久代之间最大的区别在于元数据空间并不在虚拟机中,而是使用本地内存。
程序计数器(PC 寄存器)
程序计数器的定义
程序计数器是一块较小的内存空间,是当前线程正在执行的那条字节码指令的地址。若当前线程正在执行的是一个本地方法,那么此时程序计数器为Undefined
。
程序计数器的作用
字节码解释器通过改变程序计数器来依次读取指令,从而实现代码的流程控制。在多线程情况下,程序计数器记录的是当前线程执行的位置。