JVM体系结构(一)

本系列基于JDK7

JVM体系结构

主要包含两个子系统和两个组件。

  • Class Loader(类加载器)子系统, Execution Engine(执行引擎)子系统。
  • Runtim Data Area(运行时数据区域)组件,Native Interface(本地接口)组件。

    JVM体系结构图

    Class Loader

    类加载器负责加载Java类的字节代码到Java虚拟机中,可以根据指定的类名(如java.lang.Object)来装载class文件的内容到Runtime Data Area中的Method Area(方法区域)。Java程序员可以extends java.lang.ClassLoader类来写自己的Class Loader。

    Execution Engine 执行引擎

    执行引擎是JVM最核心的组成部分之一,其主要是执行class中的指令,任何JVM实现的核心是Execution Engine。执行引擎可以把Java字节码转为机器能识别的字节码,并调用机器的指令进行计算等,不同JVM的执行效率很大程度决定于他们各自实现的Execution Engine的好坏。“虚拟机”的执行引擎与“物理机”的执行引擎是比较类似的,这两种机器都有执行代码能力,其区别是物理机的执行引擎是直接建立在处理器、硬件、指令集和操作系统层面上的,而虚拟机的执行引擎是自己实现的,因此虚拟机可以自行制定指令集与执行引擎的结构体系,并且能够执行那些不被硬件直接支持的指令。

    Java Native Interface(JNI)本地接口

    Java本地接口(Java Native Interface,JNI)是一个标准的Java API,它支持将Java代码与使用其他编程语言编写的代码相集成,例如可以调用Native语言函数C\C++等。JNI是java与其它编程语言交互的接口。

    Runtime Date Area 运行时数据区

    这个组件就是JVM的内存区域,下面对这部分进行详细介绍。这是了解JVM内存模型的重要部分。
# JVM, Java

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×