当前位置:首页 > 虚拟机 > 正文

java虚拟机包含哪几部分


一、JVM,JRE,JDK各是什么含义?之间的关系

JVM是JavaVirtualMachine(Java虚拟机)的缩写,它是一台虚构的计算机,在真实的计算机上模拟各种计算机功能。

Java运行时环境(JRE)是由SunMicrosystems开发的软件,它使计算机系统能够运行Java应用程序(JavaApplications)。

JDK是一个Java语言软件开发工具包,主要用于移动和嵌入式设备上的Java应用程序。JDK是所有Java开发的核心,包括JAVA执行环境(JVM+Java系统类库)和JAVA工具。

JRE由两部分组成:JavaRuntimeEnvironment和JavaPlug-in。JavaRuntimeEnvironment(JRE)是一个允许您运行、测试和提交应用程序的Java平台。这包括Java虚拟机(JVM)和Java核心类。库和支持文件。

不包括开发工具(JDK),例如编译器、调试器和其他工具。JRE需要补充软件JavaPlug-in才能在浏览器中运行小应用程序。



更多信息

Java平台就是这样正确的。它分为两部分:Java虚拟机(Javavirtualmachine,JVM)和JavaAPI类库。Java虚拟机主要分为五个主要模块:类加载器子系统、运行时数据区、执行引擎、本地方法接口、垃圾收集模块。

垃圾收集模块尽管Java虚拟机规范并不要求Java虚拟机垃圾收集,但大多数JVM实现在无限内存发明之前就已经进行了垃圾收集。

虽然运行时数据区以某种形式存在于每个JAVA虚拟机实例中,但Java虚拟机规范中对运行时数据区的描述非常抽象。这些运行时数据结构的大部分细节是由特定实现的设计者确定的。

参考来源:-JVM

参考来源:-JRE

参考来源:-jdk


二、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虚拟机有透彻的了解。
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。浮动和双精度。虚拟机没有为布尔(Boolean)类型指定单独的指令。布尔数据由整数指令处理,包括整数返回。布尔数组使用字节数组进行处理。虚拟机使用IEEE754格式的浮点数。不支持IEEE格式的旧计算机在运行Java数值计算程序时可能会非常慢。
虚拟机支的其他数据类型包括
object//4字节对Java对象(object)的引用
returnAddress//4字节,用于jsr/ret/jsr-w/ret-w命令
注意:Java数组被视为对象。
虚拟机的规范对对象的内部结构没有特殊的要求。在Sun的实现中,对对象的引用是一个句柄,它包含一对指针:一个指针指向对象的方法表,另一个指针指向对象的数据。以Java虚拟机字节码表示的程序应遵循类型约定。Java虚拟机的实现应该拒绝运行违反类型规范的字节码程序。由于字节码定义的限制,Java虚拟机似乎只能在具有32位地址空间的机器上运行。但是您可以创建一个Java虚拟机,自动将字节码转换为64位形式。从Java虚拟机支持的数据类型可以看出,Java对于数据类型的内部格式有严格的规定,使得不同的Java虚拟机的实现对数据的解释方式相同,从而保证了平台的独立性。Java和可移植性。