可见性限制:下层的加载器能够看到上层加载器中的类,反之则不行,委派只能从下到上。

不允许卸载类:类加载器可以加载一个类,但不能够卸载一个类。但是类加载器可以被创建或者删除。

JVM执行引擎

类加载器将字节码载入内存后,执行引擎以java字节码为单元,读取java字节码。java字节码机器读不懂,必须将字节码转化为平台相关的机器码。这个过程就是由执行引擎完成的。

在执行方法时JVM提供了四种指令来执行:

invokestatic:调用类的static方法。

invokevirtual:调用对象实例的方法。

invokeinterface:将属性定义为接口来进行调用。

invokespecial:JVM对于初始化对象(Java构造器的方法为:)以及调用对象实例的私有方法时。

主要的执行计数:

解释,即时执行,自适应优化、芯片级直接执行。

解释属于第一代JVM

即时编译JIT属于第二代JVM

自适应优化(目前sun的HotspotJVM采用这种技术),吸取第一代JVM和第二代JVM的经验,采用两者结合的方式,开始对所有的代码都采用解释执行的方式,并监视代码执行情况,然后对那些经常调用的方法启动一个后台线程,将其编译为本地代码,并进行优化。若方法不再频繁使用,则取消编译过代码,仍对其进行解释执行。

Java运行时数据区

PC寄存器

用于存储每个线程下一步将要执行的JVM指令,若该方法为native的,则PC寄存器中不存储任何信息。Java多线程情况下,每个线程都有一个自己的PC,以便完成不同线程上下文环境的切换。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查