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

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

时间:2023-02-06 11:46:29浏览次数:47  
标签:Java 字节 虚拟机 环境 7.6 代码 运行

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

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

在程序运行时,将编译后的字节代码转换成本地代码,这样的操作方法看上去有些迂回,但由此可以实现同样的字节代码在不同的环境下运行。如果能够结合各种类型的操作系统和硬件作成Java虚拟机,那么,同样字节代码的应用就可以在任何环境下运行了(图7-7)。


 PDA(Personal Digital Assistant)是指可以放入手提包中的小型手持计算机。也称为“手持设备”。

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

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

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

相关文章

  • 7.5利用虚拟机获得其他操作系统环境
    即使不通过移植,也可以使用别的方法来运行其他操作系统的应用。这里我们要介绍的方法就是利用虚拟机软件。通过利用该虚拟机,我们就可以在Macintosh的Mac操作系统上运行Windo......
  • 使用Openfeign,出现: java.lang.NoClassDefFoundError: org/apache/http/ssl/SSLContext
    之前是好的,后来项目启动,莫名其妙出现这个问题。猜测肯定是包的版本问题。 升级了cloudalibaba和boot-dependencies,发现还是没用。后面查找文章,说是这个版本低了。......
  • 7.5利用虚拟机获得其他操作系统环境
    即使不通过移植,也可以使用别的方法来运行其他操作系统的应用。这里我们要介绍的方法就是利用虚拟机软件。通过利用该虚拟机,我们就可以在Macintosh的Mac操作系统上运行Windo......
  • JavaScript中和动画相关的几个事件
    JavaScript中有以下几种与动画相关的事件:requestAnimationFrame这个事件可以在浏览器重绘之前触发,通常用于制作高性能动画。下面是一个使用requestAnimationFrame来制作简......
  • 7.6提供相同运行环境的Java虚拟机
    除虚拟机的方法之外,还有一种方法能够提供不依赖于特定硬件及操作系统的程序运行环境,那就是Java。大家说的Java,有两个层面的意思。一个是作为编程语言的Java,另一个是作为程......
  • JavaScript 数组常用方法大全
    前言大家好,我是CoderBin,本次总结了JavaScript中关于数组的一些常用操作,想学习其他方法或者深入学习这些方法的可点击前往MDN-Array。希望对大家有所帮助,谢谢!如果文中有不......
  • 【服务器数据恢复】断电导致vsan存储逻辑架构故障,虚拟磁盘文件丢失,虚拟机组件异常的数
    服务器数据恢复环境&故障:某单位服务器配置一套vsan超融合基础架构,服务器一共有16块硬盘,固态盘和机械盘各8块,固态硬盘作为缓存盘使用。机房供电异常导致服务器非正常关机,管......
  • 高级JAVA技术交流
    JDK源码,Spring源码,RPC框架源码,职场分享等等不限主题的高级技术讨论,禁广告以及一切收费教训培训类的营销推广!QQ群:825199617   ......
  • java 和mysql 开发中的数据处理浅谈
    我们在开发过程中经常会用到java和mysql,两者都能处理数据。那么什么时候用这两个,或者在特定的情况下使用正确的工具,发挥工具的本身的特点提高开发的效率就显得尤为重要。j......
  • 读Java实战(第二版)笔记02_行为参数化Lambda表达式
    1. 行为参数化1.1. 处理频繁变更的需求的一种软件开发模式1.1.1. 不管你做什么,用户的需求肯定会变1.1.2. 可让代码更好地适应不断变化的要求,减轻未来的工作量1.2.......