一,java虚拟机的疑问
对于 java 虚拟机我们并不陌生,但是不知道有多人对于java虚拟机的基本概念很清楚,到底什么是java虚拟机? 为什么虚拟机有那么多种? java虚拟机和jdk之间有什么关系?java运行与平台无关的原因与jvm 有关 又是为什么呢?好吧,我对于这些问题一直处于模糊的状态,现在就来整理一下。
二,百度解答
虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java虚拟机屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
概念很难以理解。
三,我的回答
- 首先,理解一下JDK,JDK是用于支持java应用开发的最小环境。JVM 就是JDK的一部分。
- JVM通俗来说就是一个程序,操作系统角度来看,当它运行起来就是一个进程。我们通常 用命令 java 来启动一个程序,当它运行起来后就是一个进程,然而更准确的说就是 一个JVM进程。总结,我们平时所说的 启动一个java程序,其本质就是一个 java虚拟机进程。
- JVM是执行字节码文件(.class)的虚拟进程
四,总结
我的一些问题:
- JVM 和 JDK 和 JRE 的关系
JDK 包括 JRE, JRE 包括 JVM - 为什么java被称为平台无关的编程语言
不同平台会装有不同的虚拟机,它们能够将相同的.class文件,解释成不同平台所需要的机器码。正是因为有JVM的存在,java被称为平台无关的编程语言。 - 为什么虚拟机的种类有那么多种
JAVA虚拟机规范是一种对JAVA虚拟机实现的规范要求,是由oracle制定的,而我们平时常说的JAVA虚拟机一般是指的一种具体的JAVA虚拟机规范的实现。比如我们最经常使用的JAVA虚拟机hotspot,其实JAVA虚拟机还有很多种实现,甚至如果你对JAVA虚拟机规范有了深入的了解而且对此有兴趣的话,可以写一个自己的JAVA虚拟机
网友评论