什么是虚拟机技术 什么是虚拟机

今天给大家分享一下什么是虚拟机的知识,解释一下什么是虚拟机技术 。如果你碰巧解决了你现在面临的问题,别忘了关注这个网站,现在就开始!
什么是虚拟机?
什么是虚拟机?
虚拟机的概念比较宽泛 。通常人们接触到的虚拟机的概念,包括这样的硬件模拟软件,以及JVM这样的介于硬件和编译器之间的软件 。这里指的是后者 。
虚拟机是一种抽象的计算机,它像真实的计算机一样,有一个指令集,并使用不同的存储区域 。它负责执行指令和管理数据、内存和寄存器 。这个虚拟机为任何平台上的编译器提供了一个公共接口 。编译器只需要面对虚拟机,生成虚拟机能理解的代码,然后解释器把虚拟机代码转换成特定系统的机器码来执行 。
java虚拟机
一、什么是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虚拟机有深入的了解 。
3.Java虚拟机支持的数据类型 。
Java虚拟机支持以下数据类型的Java语言:
Byte://1字节的有符号整数的补码 。
Short://2/双字节有符号整数的补码
Int://4/4字节的有符号整数的补码
Long://8/8字节的有符号整数的补码 。
Float://4字节单精度浮点数
://8字节双精度浮点数
Char://2字节无符号字符
几乎所有的Java类型检查都是在编译时完成的 。上面列出的原始数据类型的数据在Java执行时不需要用硬件标记 。操纵这些原始数据类型的字节码(指令)已经指示了操作数的数据类型 。比如iadd、ladd、fadd、dadd指令都是两个数的加法,操作数类型是int、long、float、 。虚拟机不会为布尔类型设置单独的指令 。布尔数据由整数指令处理,包括整数返回 。布尔数组用字节数组处理 。虚拟机使用格式的浮点数 。不支持IEEE格式的老电脑,运行Java数值计算程序可能会很慢 。
虚拟机支持的其他数据类型包括:
//对 ()的4字节引用
//4字节,用于jsr/ret/jsr-w/ret-w指令 。
注意:Java数组被视为对象 。
虚拟机的规范对对象的内部结构没有特殊要求 。在Sun公司的实现中,对对象的引用是一个句柄,句柄中包含一对指针:一个指针指向对象的* * *面,另一个指向对象的数据 。Java虚拟机的字节码表示的程序应该符合类型规则 。Java虚拟机的实现应该拒绝执行违反类型规定的字节码程序 。由于字节码定义的限制,Java虚拟机似乎只能运行在32位地址空的机器上 。但是您可以创建一个Java虚拟机,并自动将字节码转换为64位格式 。从Java虚拟机支持的数据类型可以看出,Java严格规定了数据类型的内部格式,使得在各种Java虚拟机的实现中对数据的解释一致,从而保证了Java的并行性和兼容性 。