Java虚拟机
Java虚拟机(Java Virtual Machine) 简称JVM Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。
Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。
java虚拟机是一个标准,可以由不同的厂家用不同的方式(软件或硬件)去实现它,只要他们的实现是符合标准即可。
各个不同厂家实现的java虚拟机
先来看一下java平台的结构图:
JVM与JRE、JDK关系?
JVM:Java Virtual Machine(Java虚拟机),负责执行符合规范的Class文件
JRE: Java Runtime Environment (java运行环境),包含JVM和类库
JDK: Java Development Kit(java开发工具包),包含JRE和开发工具包,例如javac、javah
JVM所处的位置:
JVM是java程序与操作系统之间的适配器。
因为Java虚拟机的存在,java可以在不同的操作系统平台上运行。JVM工作时,先读取由java源码生成的class字节码,再把字节码翻译成为JVM所在的操作平台上可执行的指令。
编译执行的流程:
今天就先写到这里。
刚开始写的文章,只是个人见解,不足之处请指出。
来源:oschina
链接:https://my.oschina.net/u/1167257/blog/140380