Java程序工作原理
本文所要用的专业术语的概念:
源码:用Java编写的程序。
编译器:简单讲,就是将一种语言(通常为高级语言)翻译成另一种语言(通常为低级语言)。
字节码:Java源码通过Java编译器生成的代码(但是不能被计算机直接执行)。
机器指令:可以由计算机直接执行的二进制码。
Java程序工作原理可以由下面的一张图片表述:
在了解Java程序工作原理之前,我们首先应该了解JVM虚拟机。我们必须要知道,JVM是一个可以执行Java字节码的虚拟机进程。它的作用就相当于上图中的类装载器、字节码校验器和解释器。在不同的os中,JVM也是不同的,但是每一种平台的JVM都能识别字节码文件。也就是说,只要字节码完整无误,无论是在哪种平台生成的字节码,都可以在任何一台计算机上执行。这就是“Java一次编译,处处运行”的原因。
Java工作原理的简单描述:
用Java编写的源程序(*.java文件)经过Java编译器生成字节码(*.class文件),这个字节码不能直接被os识别,必须经过JVM虚拟机翻译,生成os能识别的机器码才能被正常执行。
垃圾回收机制
JVM提供了一个系统级线程。它会跟踪每一块被分配出去的内存空间,当它检测到被分配的空间在接下来的程序中不再被使用时,就会将该内存空间标记成垃圾。当被标记的内存空间达到一定量或者到达某个确定的时刻时,就将垃圾空间释放。这种机制缓解了编程的负担,有效避免了内存泄露的发生。如图: