Java程序的工作原理

在研究Java运行原理之前,我们先思考一下,编程语言的原理。说到底,Java是一门语言,类似于英语、日语、法语,是我们与人沟通的桥梁。好了,那么编程语言也是我们与计算机沟通的桥梁。然而,众所周知,计算机只能读懂01,所以语言的执行过程就是将高级语言变到计算机所能识别的低级语言,也就是编译器将源代码编译成可执行的机器码。

OK,铺垫结束,那么Java语言的执行过程也是遵循这样的原理:由源代码变成机器码。而Java与其他语言不同的地方就是,如何将源代码变到机器码的这一个过程。下图就是,Java的转化过程。

一,Java转化过程

Java程序的工作原理

经过Java编写的程序经过Java编译器编译后先是转换成了后缀为.class的字节码,字节码经过类转载器、字节码校检器、解释器的处理,进而转化成了特定平台架构的机器码。所以,这里也就体现了Java独特的跨平台性。

二,JVM虚拟机

JVM虚拟机实际上就是上面所提到的,将字节码转化成机器码的一系列处理操作的虚拟机进程。Java编写的程序(存放在扩展名为java的文件中)经过编译器(即JDK根目录bin文件夹中的javac.exe文件)编译成字节码文件(即扩展名为class的文件),这个字节码文件不是针对具体平台的,而是针对抽象的Java虚拟机的,在Java虚拟机上运行,在不同类型的平台上安装不同的Java虚拟机,这些不同的Java虚拟机屏蔽了各个不同平台的差异,从而使编译过的Java程序具有平台无关性,即Java虚拟机在执行字节码时,把字节码解析成具体平台上的机器指令执行。