JVM运行原理是怎么样的呢

  

JVM运行原理是怎么样的呢,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

1. JVM简析:

,,,,,作为一名Java使用者,掌握JVM的体系结构也是很有必要的。

,,,,,说起Java,我们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成:Java编程语言,Java类文件格式,Java虚拟机和Java应用程序接口(Java API)。它们的关系如下图所示:

 JVM运行原理是怎么样的呢

,,,Java平台由Java虚拟机和Java应用程序接口搭建,爪哇语言则是进入这个平台的通道,用Java语言编写并编译的程序可以运行在这个平台上。这个平台的结构如下图所示:,,,

 JVM运行原理是怎么样的呢

运行期环境代表着Java平台,开发人员编写Java代码(. Java文件),然后将之编译成字节码(. class文件),再然后字节码被装入内存,一旦字节码进入虚拟机,它就会被解释器解释执行,或者是被即时代码发生器有选择的转换成机器码执行。

,,,JVM在它的生存周期中有一个明确的任务,那就是运行Java程序,因此当Java程序启动的时候,就产生JVM的一个实例;当程序运行结束的时候,该实例也跟着消失了只,,,,在Java平台的结构中,可以看的出,Java虚拟机(JVM)处在核心的位置,是程序与底层操作系统和硬件无关的关键。它的下方是移植接口,移植接口由两部分组成:适配器和Java操作系统,其中依赖于平台的部分称为适配器;JVM通过移植接口在具体的平台和操作系统上实现,在JVM的上方是Java的基本类库和扩展类库以及它们的API,利用Java API编写的应用程序(应用程序)和小程序(Java applet)可以在任何Java平台上运行而无需考虑底层平台,就是因为有Java虚拟机(JVM)实现了程序与操作系统的分离,从而实现了Java的平台无关性。

,,,,,下面我们从JVM的基本概念和运过程程这两个方面入手来对它进行深入的研究。

2. JVM基本概念

(1)基本概念:

,,,,, JVM是可运行Java代码的假想计算机,包括一套字节码指令集,一组寄存器,一个栈,一个垃圾回收,堆和一个存储方法域.JVM是运行在操作系统之上的,它与硬件没有直接的交互。

(2)运行过程:

,,,,,我们都知道Java源文件,通过编译器,能够生产相应的。类文件,也就是字节码文件,而字节码文件又通过Java虚拟机中的解释器,编译成特定机器上的机器码。

也就是如下:

,,,①Java源文件——祝辞编译器——在字节码文件

,,,②字节码文件,在JVM——祝辞机器码

,,,,,每一种平台的解释器是不同的,但是实现的虚拟机是相同的,这也就是Java为什么能够跨平台的原因了,当一个程序从开始运行,这时虚拟机就开始实例化了,多个程序启动就会存在多个虚拟机实例。程序退出或者关闭,则虚拟机实例消亡,多个虚拟机实例之间数据不能共享。

(3)三种JVM:

,,太阳,①公司的热点;

,,,②BEA公司的JRockit;

,,,③IBM公司的J9 JVM;

,,,,,在JDK1.7及其以前我们所使用的都是太阳公司的热点,但由于太阳公司和BEA公司都被甲骨文收购,jdk1.8将采用太阳公司的热点和BEA公司的JRockit两个JVM中精华形成jdk1.8 JVM的。

3。JVM的体系结构

 JVM运行原理是怎么样的呢

(1)类装入器类加载器

,,,,负责加载. class文件,类文件在文件开头有特定的文件标示,并且类加载器负责类文件的加载等,至于它是否可以运行,则由执行引擎决定。

①定位和导入二进制类文件

②验证导入类的正确性

③为类分配初始化内存

④帮助解析符号引用。

(2)本机接口本地接口:

,,,,,本地接口的作用是融合不同的编程语言为Java所用,它的初衷是融合C/c++程序,Java诞生的时候C/c++横行的时候,要想立足,必须有调用C/c++程序,于是就在内存中专门开辟了一块区域处理标记为本机的代码,它的具体作法是本地方法栈中登记本地方法,在执行引擎执行时加载本地图书馆。

,,,,,目前该方法使用的越来越少了,除非是与硬件有关的应用,比如通过Java程序驱动打印机,或者Java系统管理生产设备,在企业级应用中已经比较少见。

,,,,,因为现在的异构领域间的通信很发达,比如可以使用插座通信,也可以使用Web服务等。

JVM运行原理是怎么样的呢