Java程序员深度剖析—Java 程序计数器
2016-11-05 10:53
267 查看
简述
程序计数器(program counter register)只占用了一块比较小的内存空间,至于小到什么程度呢,这样说吧,有时可以忽略不计的。
作用
可以看作是当前线程所执行的字节码文件(class)的行号指示器。在虚拟机的世界中,字节码解释器就是通过改变计数器的值来选取下一条执行的字节码指令,分支、循环、跳转、异常处理、线程恢复都需要这玩意来实现的,NB吗?
特性
因为处理器在一个确定是时刻只会执行一个线程中的指令,线程切换后,是通过计数器来记录执行痕迹的,因而可以看出,程序计数器是每个线程私有的。
如果执行的是java方法,那么记录的是正在执行的虚拟机字节码指令的地址的地址,如果是native方法,计数器的值为空(undefined)。
这个内存区域是唯一一个在java虚拟界规范中没有规定任何OutOfMemoryError的情况的区域。至于为什么没有这个异常呢,要是一个计数的功能在出这个异常,那么我也是醉了。
程序计数器(program counter register)只占用了一块比较小的内存空间,至于小到什么程度呢,这样说吧,有时可以忽略不计的。
作用
可以看作是当前线程所执行的字节码文件(class)的行号指示器。在虚拟机的世界中,字节码解释器就是通过改变计数器的值来选取下一条执行的字节码指令,分支、循环、跳转、异常处理、线程恢复都需要这玩意来实现的,NB吗?
特性
因为处理器在一个确定是时刻只会执行一个线程中的指令,线程切换后,是通过计数器来记录执行痕迹的,因而可以看出,程序计数器是每个线程私有的。
如果执行的是java方法,那么记录的是正在执行的虚拟机字节码指令的地址的地址,如果是native方法,计数器的值为空(undefined)。
这个内存区域是唯一一个在java虚拟界规范中没有规定任何OutOfMemoryError的情况的区域。至于为什么没有这个异常呢,要是一个计数的功能在出这个异常,那么我也是醉了。
相关文章推荐
- Java常见笔试面试题目深度剖析系列之:Java方法参数传递详解
- java 内部类深度剖析
- 【Java程序优化】- 深度剖析 List 性能分析
- Java内存的原型及工作原理深度剖析
- Java内存的原型及工作原理深度剖析
- 基于WEB应用开发的java程序员必备工具(脚本调试工具、java剖析工具)
- Java记录 -90- 静态代理模式深度剖析
- 深度剖析——mysql-connector-java-5.1.6-bin_RowDataCursor .fetchMoreRows
- JAVA深度剖析之JVM的体系结构
- Java记录 -25- String类深度剖析
- 深度剖析:Java POJO Bean 对象与 Web Form 表单的自动装配
- Java中深度剖析Http协议
- 深度剖析Java数据结构之表(四)——LinkedList泛型类的实现
- java-反射深度剖析
- Java常见笔试、面试题目深度剖析
- Java常见笔试面试题目深度剖析系列之:Java方法参数传递详解
- 经济危机和通货膨胀的深度剖析(程序员学经济)
- Java程序员从笨鸟到菜鸟之(四十六)细谈struts2(八)拦截器的实现原理及源码剖析
- java字符串次深度剖析
- [Java并发包学习八]深度剖析ConcurrentHashMap