问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

虚拟机的Java

发布网友 发布时间:2022-04-25 23:37

我来回答

1个回答

热心网友 时间:2023-10-17 23:49

Java虚拟机(JVM)是Java Virtual Machine的缩写,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能模拟来实现的。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语言的基本数据类型如下:
byte://1字节有符号整数的补码
short://2字节有符号整数的补码
int://4字节有符号整数的补码
long://8字节有符号整数的补码
float://4字节IEEE754单精度浮点数
double://8字节IEEE754双精度浮点数
char://2字节无符号Unicode字符
几乎所有的Java类型检查都是在编译时完成的。上面列出的原始数据类型的数据在Java执行时不需要用硬件标记。操作这些原始数据类型数据的字节码(指令)本身就已经指出了操作数的数据类型,例如iadd、ladd、fadd和dadd指令都是把两个数相加,其操作数类型别是int、long、float和double。虚拟机没有给boolean(布尔)类型设置单独的指令。boolean型的数据是由integer指令,包括integer返回来处理的。boolean型的数组则是用byte数组来处理的。虚拟机使用IEEE754格式的浮点数。不支持IEEE格式的较旧的计算机,在运行Java数值计算程序时,可能会非常慢。
虚拟机支持的其它数据类型包括:
object//对一个Javaobject(对象)的4字节引用
returnAddress//4字节,用于jsr/ret/jsr-w/ret-w指令
注:Java数组被当做object处理。
虚拟机的规范对于object内部的结构没有任何特殊的要求。在Sun公司的实现中,对object的引用是一个句柄,其中包含一对指针:一个指针指向该object的方法表,另一个指向该object的数据。用Java虚拟机的字节码表示的程序应该遵守类型规定。Java虚拟机的实现应拒绝执行违反了类型规定的字节码程序。Java虚拟机由于字节码定义的*似乎只能运行于32位地址空间的机器上。但是可以创建一个Java虚拟机,它自动地把字节码转换成64位的形式。从Java虚拟机支持的数据类型可以看出,Java对数据类型的内部格式进行了严格规定,这样使得各种Java虚拟机的实现对数据的解释是相同的,从而保证了Java的与平台无关性和可
移植性。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
中考,安徽省定远一中达标分数线,求真实 我女朋友要过生日了,她让我送她酸奶,另外让我每天为她叠一个飞机,等... dye one's hair blue和 color on'e hair blue有什么区别? 1=1,2+3+4=9,3+4+5+6+7=25,4+5+6+7+8+9+10=49…照此规律,第n个等式为... 观察下列等式, 1=1 2+3+4=9 3+4+5+6+7=25 4+5+6+7+8+9+10=49 按照此... 1=1 2+3+4=9 3+4+5+6+7=25 4+5+6+7+8+9+10=49 照此规律, 观察下列等式1=12+3+4=93+4+5+6+7=254+5+6+7+8+9+10=49照此规律,第五... ...3+4=93+4+5+6+7=254+5+6+7+8+9+10=49……照此规律,第 个等式为... ...关于EXCEL中输入3-4就会自动生成年月日,怎么不让它自动生成啊_百度... 我的excel自动生成日期 我输入数字就自动成为日期 如何取消呢_百度知 ... 和帕萨特新能源去看看另一个世界,崖壁之上的云端廊桥 求java机和智能机的区别 抖音上DJ很火的海南校长叫什么名字? 抖音林先生的车是什么车? 什么是Java虚拟机?Java虚拟机使用方法? 抖音里面八戒说车海南那个大哥的明星媳妇是谁? 详细介绍什么是Java虚拟机 抖音喜欢开迈腾的男人是什么梗 Java虚拟机,Java解释器到底是什么?两者关系是什么? 抖音火山版哈雷坐骑怎么没显示了? java虚拟机是什么意思? 抖音里面直播找4s店的是谁?车质量问题的 什么是Java虚拟机?它的作用是什么? 抖音上的大头汽车是什么梗? 什么是 Java 虚拟机? 想问一下,羚萌直播里面座驾都要怎么获得啊? 抖音里mike是什么背景 抖音里面的车能过户吗 写出下面几条纬线的度数及特殊意义,北极圈和南极圈 王思聪为什么不在抖音上晒座驾? java可以在任何机器上运行吗 什么是JAVA是虚拟机?为什么要使用他? 关于智能机和JAVA IE工程师的前景怎么啊? 31岁在做ie工程师,不知道未来怎么样 研发部NPI项目工程师与IE工程师哪个更有发展, 绿萝叶子特点? 绿萝烂叶子是什么原因? 想问一下华为h3c到底是什么?还有ne,se,ie的培训 绿萝的叶子能吃吗? 绿萝叶子有洞是怎么回事,该怎么办? 绿萝叶子变软有什么方法 绿萝叶子长什么样 十二指肠溃疡吃什么中成药好? 喉咙溃疡吃什么中成药 口腔溃疡,可以吃什么中成药? 慢性胃溃疡慢性胃炎吃什么中成药好? 胃炎胃溃疡吃什么中成药最好 qq怎么隐身离线状态oppo手机版为什么会没有隐身状态? 胃溃疡吃什么中药最好?