01.程序计数器

程序计数器

这是一块比较小的内存,不在 RAM 上,而是直接划分在 CPU 上的,程序员无法直接操作它,它的作用是:JVM 在解释字节码文件(.class)时,存储当前线程所执行的字节码的行号,只是一种概念模型,各种 JVM 所采用的方式不同,字节码解释器工作时,就是通过改变程序计数器的值来选取下一条要执行的指令,分支、循环、跳转、等基础功能都是依赖此技术区完成的。还有一种情况,就是我们常说的 Java 多线程方面的,多线程就是通过现程轮流切换而达到的,同一时刻,一个内核只能执行一个指令,所以,对于每一个程序来说,必须有一个计数器来记录程序的执行进度,这样,当线程恢复执行的时候,才能从正确的地方开始,所以,每个线程都必须有一个独立的程序计数器,这类计数器为线程私有的内存。如果一个线程正在执行一个 Java 方法,则计数器记录的是字节码的指令的地址,如果执行的一个 Native 方法,则计数器的记录为空,此内存区是唯一一个在 Java 规范中没有任何 OutOfMemoryError 情况的区域。

下一页