Java虚拟机概念
Java虚拟机(Java Virtual Machine,JVM)是一个抽象的计算机,和实际的计算机一样,通过模拟仿真来实现计算机功能。Java虚拟机不仅有自己本身的硬件架构,如处理器、堆栈、寄存器,还具有相应的指令系统。
Java的运行机制
Java的跨平台是它的主要特性之一,而Java虚拟机是实现这一特性的关键。Java程序的整个执行过程包括编译阶段与运行阶段,其中涉及到Java源程序、Java字节码文件、Java类库和Java虚拟机以及最后的平台。
在Java编译阶段,编写的Java源程序(.java)经过Java编译器编译成字节码文件(.class)后并保存起来。
在Java运行阶段,获取到保存的.class字节码文件以及源程序中引用的类库Java API的字节码文件,然后通过类装载器(Class Loader)将这些文件一并装载到内存缓冲区,接着Java虚拟机开始执行这些文件并生成目标代码(字节码)。由于Java虚拟机可以将字节码程序跟具体的操作系统及硬件平台分割开来,只要各平台实现了Java虚拟机,任何Java程序就可以在其上面运行了。
Java程序执行过程
类比理解:《长江七号》
《长江七号》里的那个七仔是外星人,可是它说的话地球人听不懂啊(各国人好比各系统平台,七仔说的话好比Java源文件),然后地球人就想尽办,终于发明了那么一款软件可以跟七仔交流(这个软件就好比Java虚拟机),它的原理是将七仔说的话先使用电磁波谱显示出来(这个过程好比使用Java编译器将Java源文件编译成.class字节码文件),然后地球人(不管美国、英国、中国、韩国等哪国人)只要使用这款软件(这就好比各平台实现了Java虚拟机)把电磁波谱解读出来并智能地翻译成对应国家的母语(这个过程好比Java虚拟机将计算机不能执行的Java程序转换成各平台能识别的二进制),然后地球人就能与七仔交流了。哈哈,是不是很好理解?
Java程序执行简化过程
小结
以上内容是对Java虚拟机进行了一个简单的理解,以后将会深入地理解Java虚拟机运行机制。现在只需理解Java虚拟机在Java程序执行过程中的作用即可。