2016 - 2024

感恩一路有你

java为什么用虚拟机 天翼空间为什么要使用JAVA虚拟机?

浏览量:4217 时间:2023-02-07 09:59:47 作者:采采

java为什么用虚拟机 天翼空间为什么要使用JAVA虚拟机?

天翼空间为什么要使用JAVA虚拟机?

Java语言一个很重要的特点就是与平台无关。使用Java虚拟机是实现这一功能的关键。如果一个通用的高级语言要在不同的平台上运行,至少需要编译成不同的目标代码。引入Java虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用模式Java虚拟机屏蔽了与特定平台相关的信息,使得Java语言编译器只需要生成运行在Java虚拟机上的目标代码(字节码),就可以在各种平台上运行,无需修改。Java虚拟机在执行字节码时,将字节码解释为特定平台上的机器指令执行。请点击:JAVA虚拟机下载。流量超市商品种类齐全,可根据需求自由选择流量包、套餐、语音包、节日流量包;电信股份有限公司贵州客服官方账号回复,关键词 "流动超市 "可以直接办理,方便快捷。

java虚拟机就是java解释器吗?如果不是的话他们之间有什么区别和联系?

Java在执行前编译成字节码。Java虚拟机是字节码运行的环境,通过Java虚拟机可以实现平台无关性,而Java解释器将字节码解释为操作系统能够理解的原语执行。Java解释器是虚拟机的实现。

JAVA虚拟器是什么?

Java虚拟机全称:Java虚拟机;是一个用Java开发语言运行Java字节码文件的平台;总的来说是程序。它提供了Java字节码的解释和操作,使Java语言可以独立于各种系统平台。

Java能不能像C语言不通过JVM虚拟机直接编译成二进制机器码,让计算机直接运行?

从语言设计的角度是可以的,通过重新设计编译器可以实现,但从工程实践的角度是不可行的。

一、Java语言最大的特点是跨平台可移植性,一次开发,一次编译,多平台执行。这个特性是通过JVM(Java虚拟机)实现的。重写后的编译器如果直接编译成类似C语言的可执行程序,就失去了跨平台的特性。

其次,Java语言在设计之初就被设计成非常依赖JRE(Java运行时环境)的语言,语言设计中的一些缺陷必须由JVM来解决,比如GC(垃圾收集)。我们知道,Java语言没有内存回收能力,所以它必须依赖JVM。在工程实践中,如果软件不能回收内存,后果不堪设想。

第三,Java语言是面向对象的,与C不同,C也是面向对象的。Java还有一个动态特性。

它允许程序在运行过程中动态加载需要的类,这是C语言面向对象编程无法做到的。在C编程过程中,每当一个实例变量或成员函数被添加到一个类中时,所有的类都会被引用。子类必须重新编译,否则程序会崩溃。Java从以下几个方面采取措施解决这个问题。Java编译器不是将对实例变量和成员函数的引用编译成数值引用,而是将符号引用信息保存在字节码中后传递给解释器,然后解释器在动态链接类后将符号引用信息转换成数值偏移量。这样,在内存中生成的对象不是在编译时确定的,而是在运行时由解释器确定的。这样,更新类中的变量和方法不会影响现有的代码。说明在执行字节码的时候,只在新名字出现的时候执行一次查找和转换符号信息的过程,然后就可以全速执行代码了。在运行时确定引用的好处是,您可以使用更新的类,而不用担心影响原始代码。如果一个程序连接到网络中另一个系统的类,该类的所有者也可以自由地更新该类,而不会使任何引用该类的程序崩溃。而这一切也有赖于JRE。

以上几点决定了Java不能像C语言一样直接编译成机器码。当然还有其他因素,但我觉得以上几点最重要。

Java 语言 虚拟机 平台 字节

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。