<b>Java虚拟机</b>[Java编程]
本文“<b>Java虚拟机</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
1、 什么是Java虚拟机
Java虚拟机是一个想象中的机械,在实际的计算机上通过软件模拟来实现.Java虚拟机有自己想象中的硬件,如处理器、仓库、存放器等,还具有呼应的指令系统.
1.为什么要利用Java虚拟机?
Java语言的一个非常重要的特点就是与平台的无关性.而利用Java虚拟机是实现这一特点的关键.普通的高级语言假如要在差别的平台上运行, 至少需求编译成差别的目标代码.而引入Java语言虚拟机后,Java语言在差别平台上运行时不需求重新编译.
Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),便可以在多种平台上不加改正地运行.Java虚拟机在履行字节码时,把字节码注释成具体平台上的机械指令履行.
2.谁需求理解Java虚拟机
Java虚拟机是Java语言底层实现的底子,对Java语言感爱好的人都应对Java虚拟机有个大约的理解.这有助于理解Java语言的一些性质,也有助于利用Java语言.
关于要在特定平台上实现Java虚拟机的软件人员,Java语言的编译器作者以及要用硬件芯片实现Java虚拟机的人来说,则必须深化理解Java虚拟机的标准.
别的,假如你想扩大 Java语言,或是把别的语言编译成Java语言的字节码,你也需求深化地理解Java虚拟机.
3.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的与平台无关性和可移植性.
以上是“<b>Java虚拟机</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
- ·上一篇文章:线性表的操纵
- ·下一篇文章:反汇编器-javap.exe
- ·中查找“<b>Java虚拟机</b>”更多相关内容
- ·中查找“<b>Java虚拟机</b>”更多相关内容