您现在的位置是:首页 >

java虚拟机的使用 深究Java虚拟机

火烧 2021-06-27 13:37:01 1057
深究Java虚拟机 JVM:Java Virtual Machi e Java虚拟机 JRE:Java Ru time E viro me t Java运行时环境 ABI:A licatio Bi a
java虚拟机的使用 深究Java虚拟机

深究Java虚拟机  

JVM:Java Virtual Machine Java虚拟机

JRE:Java Runtime Environment Java运行时环境

ABI:Application Binary Interface 应用二进制接口 是一个程序在运行时应用的环境 也是一种可执行文件的格式 操作系统都有自己的进程地址控件 硬件系统也各不相同 java在所有的计算机上都使用相同的ABI

  java运行时环境JRE 包括java虚拟机 是java ABI与各种硬件/操作系统ABI之间的桥梁

   )java源代码编译后生成的目标代码是一种字节码(bytecode) 与其他语言不同的是 java的字节码是一种中立结构的机器代码(不是任何现有系统上的二进制指令代码) 通过JVM可以快速地解释并运行在任何特定的计算机上

)java程序的执行通过JVM实现

)一般情况下 JVM是在运行java程序时调用的

)JVM读取字节码程序 解释或翻译成实际的机器指令后再执行 实行了java的 一次编写 多处运行 的特点

 

  Java虚拟机是什么

  Java虚拟机之所以称为 虚拟 就是因为它仅仅是由一个规范来定义的抽象计算机 要运行某个Java程序 首先需要一个符合该规范的具体实现

  下面主要讨论这个规范本身

    要理解Java虚拟机 你必须意识到 当你说 Java虚拟机 时 可能指的是如下三种不同的东西

  <! [if !supportLists] >·   抽象规范 

  <! [if !supportLists] >·    <! [endif] >一个具体的实现 

  ·   一个运行中的虚拟机实例

  Java虚拟机抽象规范仅仅是个概念 该规范的具体实现 可能来自多个提供商 并存在多个平台上 它或者完全用软件实现 或者以硬件和软件相结合的方式来实现 当运行一个Java程序的同时 也就在运行了一个Java虚拟机实例 对JVM规范的抽象说明是一些概念的集合 它们已经在书《The Java Virtual Machine Specification》(《Java虚拟机规范》)中被详细地描述了 对JVM的具体实现要么是软件 要么是软件和硬件的组合 它已经被许多生产厂商所实现 并存在于多种平台之上 运行Java程序的任务由JVM的运行期实例单个承担 在本文中我们所讨论的Java虚拟机(JVM)主要针对第三种情况而言 它可以被看成一个想象中的机器 在实际的计算机上通过软件模拟来实现 有自己想象中的硬件 如处理器 堆栈 寄存器等 还有自己相应的指令系统   JVM在它的生存周期中有一个明确的任务 那就是运行Java程序 因此当Java程序启动的时候 就产生JVM的一个实例 当程序运行结束的时候 该实例也跟着消失了 下面我们从JVM的体系结构和它的运行过程这两个方面来对它进行比较深入的研究 <! [if !supportLineBreakNewLine] ><! [endif] >

  

 

  Java虚拟机的生命周期

  一个运行时的Java虚拟机实例的天职就是 负责运行一个Java程序 当启动一个Java程序时 一个虚拟机实例也就诞生了 当该程序关闭退出 这个虚拟机实例也就随之消亡 每个Java程序都运行在于自己的Java虚拟机实例中 Java虚拟机实例通过调用某个初始类的main()方法来运行一个Java程序 而这个main()方法必须是public static 返回值为void main()方法作为该程序初始线程的起点 任何其他的线程都是由这个初始线程启动的    Java虚拟机内部有两种线程 守护线程和非守护线程

  守护线程通常由虚拟机自己使用的 比如执行垃圾收集任务的线程 但是 Java程序也可以把它的创建的任何线程标记为守护线程

  而Java程序中的初始线程 就是开始于main()的那个 是非守护线程 只要有非守护线程在运行 那么这个Java程序也在继续运行 只有该程序中所有的非守护线程都终止时 虚拟机实例将自动退出

Java虚拟机的体系结构Java虚拟机的结构分为 类装载子系统执行引擎运行时数据区本地方法接口 其中运行时数据区又分为 方法区 堆 Java栈 PC寄存器 本地方法栈

Java核心技术免费提供,内容来源于互联网,本文归原作者所有。

  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码