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

java虚拟机运行的是什么类型文件(哪种文件可以在java虚拟机运行)

什么是JAVA虚拟主机?

Java虚拟机1.什么是Java虚拟机?Java虚拟机是通过软件模拟在真实计算机上实现的虚拟机器。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,以及相应的指令系统。1.为什么使用Java虚拟机Java语言的一个非常重要的特性就是它的平台独立性。使用Java虚拟机是实现这一功能的关键。通用高级语言要想在不同的平台上工作,至少必须编译成不同的目标代码。Java语言虚拟机推出后,Java语言在不同平台上运行时不再需要重新编译。Java语言使用模型Java虚拟机保护与特定平台相关的信息,因此Java语言编译器只需要生成在机器虚拟Java上运行的目标代码(字节码),无需修改即可在多个平台上运行。当Java虚拟机执行字节码时,它将字节码解释为机器指令以在特定平台上执行。2.谁应该了解JVM?Java虚拟机构成了Java语言底层实现的基础。任何对Java语言感兴趣的人都应该对Java虚拟机有一个大致的了解。这有助于理解Java语言的一些属性,也让你能够使用Java语言。对于想要在特定平台上实现Java虚拟机的软件人员、Java语言的编译器作者以及想要使用硬件芯片来实现Java虚拟机的人来说,必须对Java语言规范有透彻的了解。虚拟机。另外,如果想要扩展Java语言或者将其他语言编译成Java语言字节码,也需要对Java虚拟机有深入的了解。虚拟机支持的数据类型。JVM支持的基本数据类型有:byte://1字节有符号整数的补码Short://2字节有符号整数的补码int://4字节有符号整数的补码long://4字节有符号整数的补码8字节有符号整数float://4字节IEEE754单精度浮点数double://8字节IEEE754双精度浮点数numberchar://2字节无符号Unicode字符几乎所有Java类型检查是在编译时完成的。当Java执行时,上面列出的原始数据类型中的数据不需要进行硬标记。操作这些原始数据类型的字节码(指令)已经表明了操作数的数据类型。例如,指令iadd、ladd、fadd、dadd都是两个数相加,其操作数类型有int、long、float、double。虚拟机没有为布尔类型定义单独的指令。布尔数据由整数指令处理,包括整数返回。布尔数组使用字节数组进行处理。虚拟机使用IEEE754格式的浮点数。不支持IEEE格式的旧计算机在运行Java数值计算程序时可能会非常慢。虚拟机支持的其他数据类型包括:object//4个字节的Java对象(object)引用returnAddress//4个字节,用于jsr/ret/jsr-w/ret-w指令注意:Java数组被视为用于加工物体。虚拟机规范对于对象的内部结构没有特殊要求。在Sun的实现中,对对象的引用是一个包含一对指针的句柄:一个指针指向对象的方法表,另一个指针指向对象的数据。JVM字节码中表示的程序必须遵循类型约定。Java虚拟机实现必须拒绝执行违反类型规范的字节码程序。由于设置字节码的限制,JVM似乎只能在具有32位地址空间的机器上运行。但是您可以创建一个自动将字节码转换为64位格式的JVM。从JVM支持的数据类型可以看出,Java对数据类型的内部格式有严格的规定,因此各个JVM的实现都以相同的方式解释数据,从而保证了Java的平台独立性和可移植性。虚拟机体系结构Java虚拟机由五部分组成:指令集、寄存器集、堆栈、垃圾收集堆和方法区。这五个部分是Java虚拟机的逻辑组件,不依赖于任何实现技术或组织方法,但它们的功能必须在真机上以这样或那样的方式实现。指令集Java虚拟机支持大约248字节的代码。每个字节码执行基本的处理器操作,例如将整数添加到寄存器、传输子例程等。Java指令集相当于Java程序的汇编语言。Java指令集中的指令由指定要执行的操作的单字节运算符和提供操作所需的参数或数据的零个或多个操作数组成。许多指令没有操作数,仅由单字节运算符组成。执行虚拟机内循环的过程如下:do{获取一个操作符字节;根据;}while运算符的值执行操作(程序不会终止)。由于系统指令简单,虚拟机的执行过程非常简单,从而有助于提高执行效率。指令操作数的数量和大小由运算符决定。如果

什么是java虚拟机以及它的用途是什么?

Java虚拟机1.什么是Java虚拟机Java虚拟机是在实际计算机上通过软件模拟实现的虚拟机器。Java虚拟机有自己的虚拟硬件,如处理器、堆栈、寄存器等,也有相应的指令系统。1.为什么使用Java虚拟机Java语言的一个非常重要的特性是它的平台独立性。使用Java虚拟机是实现这一功能的关键。通用高级语言要想运行在不同的平台上,至少必须编译成不同的目标代码。Java语言虚拟机引入后,Java语言在不同平台上运行时不需要重新编译。Java语言使用模型Java虚拟机保护特定于平台的信息,因此Java语言编译器只需要生成在Java虚拟机上运行的目标代码(字节码),无需修改即可在多个平台上运行。Java虚拟机执行字节码时,会将字节码解释为机器指令,以便在特定平台上执行。2、谁需要了解Java虚拟机?Java虚拟机是Java语言基本实现的基础。任何对Java语言感兴趣的人都应该对Java虚拟机有一个大致的了解。它有助于理解Java语言的一些属性,也有助于使用Java语言。对于想要在特定平台上实现Java虚拟机的软件人员、Java语言编译器的作者以及想要使用硬件芯片来实现Java虚拟机的人来说,必须对Java规范有深入的了解。虚拟机。另外,如果想扩展Java语言或者将其他语言编译成Java语言位码,还必须对Java虚拟机有深入的了解。虚拟机支持的数据类型Java虚拟机支持的基本数据类型如下:byte://1字节有符号整数Short://2字节有符号整数int://a的补码4字节有符号整数,long://8字节整数的补码float://4字节IEEE754单精度浮点数double://8字节IEEE754双精度浮点数char数://2字节无符号Unicode字符几乎所有Java类型检查都是在编译时完成的。上面列出的基本数据类型的数据在Java执行时不需要在硬件中进行标记。对这些原始数据类型进行操作的字节码(指令)已经指出了操作数的数据类型。例如指令iadd、ladd、fadd、dadd都是两个数字相加,其操作数类型类型有int、long、float、double。虚拟机没有对boolean类型设置特殊的指令。布尔数据由整数指令处理,包括整数返回。布尔数组使用字节数组进行处理。虚拟机使用IEEE754格式的浮点数。不支持IEEE格式的旧计算机在运行Java数值计算程序时可能会非常慢。虚拟机支持的其他数据类型包括:object//4字节的Java对象(object)引用returnAddress//4字节,用于jsr/ret/jsr-w/ret-w指令注:Java字符串被视为For处理对象。虚拟机规范对对象的内部结构没有任何特殊要求。在Sun的实现中,对对象的引用是一个句柄,它包含一对指针:一个指针指向对象的方法表,另一个指针指向对象的数据。用Java虚拟机字节码表示的程序必须遵守类型约定。Java虚拟机实现必须拒绝运行违反类型规范的字节码程序。由于字节码定义的限制,Java虚拟机似乎只能在具有32位地址空间的机器上运行。但是您可以创建一个自动将字节码转换为64位形式的Java虚拟机。从Java虚拟机支持的数据类型可以看出,Java对于数据类型的内部格式有严格的规定,使得不同的Java虚拟机实现对数据的解释方式相同,从而保证了Java平台的独立性和可移植性。虚拟机体系结构Java虚拟机由五部分组成:指令集、寄存器集、堆栈、垃圾堆和方法区。这五个部分是Java虚拟机的逻辑组件,不依赖于任何实现技术或组织方法,但它们的功能必须在真机中以某种方式实现。指令集Java虚拟机支持大约248字节的代码。每个字节码执行基本的CPU操作,例如将整数添加到寄存器、子程序传输等。Java指令集相当于Java程序的汇编语言。Java指令集中的一条指令由一个指定要执行的操作的单字节运算符和提供操作所需的参数或数据的零个或多个操作数组成。许多指令没有操作数,仅由单字节运算符组成。虚拟机内循环的执行过程如下:do{获取一个字节运算符;对运算符的值执行操作;}while(程序尚未完成)。由于System指令的简单性,使得虚拟机的执行过程非常简单、简单,从而有助于提高执行效率。指令中操作数的数量和大小由运算符决定