首页 > 编程语言 >7.6提供相同运行环境的Java虚拟机

7.6提供相同运行环境的Java虚拟机

时间:2023-02-12 21:34:20浏览次数:69  
标签:Java 字节 虚拟机 环境 7.6 代码 运行

      除虚拟机的方法之外,还有一种方法能够提供不依赖于特定硬件及操作系统的程序运行环境,那就是Java。

      大家说的Java,有两个层面的意思。一个是作为编程语言Java,另一个是作为程序运行环境的Java。同其他编程语言相同,Java也是将Java语法记述的源代码编译后运行。不过,编译后生成的并不是特定CPU使用的本地代码,而是名为字节代码的程序。字节代码的运行环境就称为Java虚拟机(JavaVM,Java Virtual Machine)。Java虚拟机是一边把Java字节代码逐一转换成本地代码一边运行的。

      例如,在使用用于AT兼容机的Java编译器和Java虚拟机的情况下,编译器会将程序员编写的源代码(sample.java)转换成字节代码 (sample.class )。而 Java 虚拟机(java.exe)则会把字节代码变换成x86系列 CPU 适用的本地代码,然后由 x86 系列 CPU 负责实际的处理。在程序运行时,将编译后的字节代码转换成本地代码,这样的操作方法看上去有些迂回,但由此可以实现同样的字节代码在不同的环境下运行。如果能够结合各种类型的操作系统和硬件作成 Java 虚拟机,那么,同样字节代码的应用就可以在任何环境下运行了(图 7-7 )。

 

 

       Windows有Windows专用的Java虚拟机,Macintosh也有Macintosh专用的Java虚拟机,从操作方面来看,Java虚拟机是一个应用,而从 Java 应用方面来看,Java 虚拟机就是运行环境。虽然这样看起来 Java 虚拟机全是好处,但其实也有不少问题。其中一点就是,不同的 Java 虚拟机之间无法进行完整互换。这是因为,想让所有字节代码在任意 Java 虚拟机上都能运行是比较困难的。而且,当我们使用只适用于某些特定硬件的功能时,就会出现在其他 Java 虚拟机上无法运行,或者功能使用受限等情况。

      另一点就是运行速度的问题。Java 虚拟机每次运行时都要把字节代码变换成本机代码,这一机制是造成运行速度慢的原因。为此,目前业界也在努力改善这一问题,比如把首次变换后的本地代码保存起来,第2次以后直接利用本地代码,或是对字节代码中处理较为费时的部分进行优化(改善生成的本地代码质量)等。

      

 

标签:Java,字节,虚拟机,环境,7.6,代码,运行
From: https://www.cnblogs.com/24koi/p/17114748.html

相关文章