当前位置: 首页 > 面试题库 >

程序计数器为什么是私有的?

章光华
2023-03-14
本文向大家介绍程序计数器为什么是私有的?相关面试题,主要包含被问及程序计数器为什么是私有的?时的应答技巧和注意事项,需要的朋友参考一下

程序计数器主要有下面两个作用:

  1. 字节码解释器通过改变程序计数器来依次读取指令,从而实现代码的流程控制,如:顺序执行、选择、循环、异常处理。
  2. 在多线程的情况下,程序计数器用于记录当前线程执行的位置,从而当线程被切换回来的时候能够知道该线程上次运行到哪儿了。

需要注意的是,如果执行的是 native 方法,那么程序计数器记录的是 undefined 地址,只有执行的是 Java 代码时程序计数器记录的才是下一条指令的地址。

所以,程序计数器私有主要是为了线程切换后能恢复到正确的执行位置

 类似资料:
  • 本文向大家介绍Java中的程序计数器是什么,包括了Java中的程序计数器是什么的使用技巧和注意事项,需要的朋友参考一下 程序计数器是当前线程正在执行的字节码的地址。程序计数器是线程隔离的,每一个线程在工作的时候都有一个独立的计数器。 JAVA虚拟机管理的内存区域图 1.什么是程序计数器? 程序计数器是当前线程正在执行的字节码的地址。程序计数器是线程隔离的,每一个线程在工作的时候都有一个独立的计数器

  • 我试图理解这句话的含义: 每个Java虚拟机线程都有自己的pc(程序计数器)寄存器。在任何时候,每个Java虚拟机线程都在执行单个方法的代码,即该线程的当前方法(§2.6)。 https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-2.html#jvms-2.5.1 我假设JVM线程像任何其他线程一样工作——每次调度线程运行(比如Linux内

  • 我在试着理解这句话的意思: 每个Java虚拟机线程都有自己的pc(程序计数器)寄存器。在任何一点上,每个Java虚拟机线程都在执行单个方法的代码,即该线程的当前方法(§2.6)。 https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-2.html#jvms-2.5.1 我假设JVM线程的工作方式与任何其他线程一样--每次调度线程运行时(比方

  • 在类中,列表元素的对象数组定义为Package-Private: 注释指出,该字段不是私有字段的原因是在嵌套的类中更容易访问。然而,嵌套的类可以很好地访问封闭类的私有数据。那么为什么不是私有的呢?在后台是否发生了一些事情(例如,在编译时)?

  • 问题内容: Python使我们能够在类中创建“私有”方法和变量,方法是在名称前加上双下划线,例如:。那么,如何解释这一点 这是怎么回事?! 我会为那些不太了解的人解释一下。 我在那里所做的是创建一个具有公共方法和私有方法的类,并将其实例化。 接下来,我将其称为public方法。 接下来,我尝试调用其私有方法。 这里看起来一切都很好。我们无法调用它。实际上,它是“私有”的。好吧,实际上不是。在对象上

  • 问题内容: 我的应用程序在Linux上作为后台进程运行。当前在“终端”窗口的命令行中启动。 最近,一个用户执行该应用程序一段时间后,它神秘地死了。文本: 被杀 在航站楼上。这发生了两次。我问其他终端是否有人使用kill命令杀死进程?没有。 Linux在什么情况下会决定终止我的进程?我相信外壳程序显示为“ killed”,因为该进程在收到kill(9)信号后就死了。如果Linux发送了kill信号,