Java程序运行机制
编译型
全部翻译。如果想再看前面的东西,不需要回头再次进行翻译。但是如果换了内容需要跟着全部重新翻译,代价较大。编译型负责翻译的程序把源代码转换成计算机可以执行的代码compile。翻译好了,电脑执行速度快,对操作系统要求比较低,比如开发Windows,Linux等操作系统,都会用编译型去做。C语言,C++等这些语言都是编译型的,要运行的话,整个程序编译一下,它就可以直接用。
解释型
实时翻译。看一段翻译一段,如果想再看前面的东西,需要再次进行翻译。但是如果换了内容它可以根据换的部分解释,节省成本。执行什么读什么,对性能有损失,另外用一下编一下,如果要看前面的东西需要再次翻译较麻烦。比如网页,服务器的一些脚本,对速度要求不高,就可以使用解释型语言,边执行边解释。Java,Javascript,VBscript,Python等这些都是解释语言。
这两者都有解释的意思,但是时机不同
程序运行机制
笼统解释:Java程序源文件是通过一条Javac命令,把它编译成class文件,再通过解释器,给操作系统解释这个代码要干什么,操作系统根据指令进行操作,这就是程序。将一系列指令按照有规律的操作来进行执行。(java既有编译型特点又有解释型特点,但是它更接近于解释型语言特征。从Java文件变成Class文件,中间这个过程就是编译过程。把Java源文件通过Java的编译器,变成了class文件,这个class文件才被真正的执行。在真正执行之前经过了一次预编译,生成的代码介于机器码和Java源代码之间的一个程序,也就是字节码文件。字节码运行的时候会走到jvm虚拟机,简单步骤会把Class文件,就是这个类,放到虚拟机的类装载器里面,这个类就被加载到jvm里了。加载进去以后有一个字节码校验器,看代码写的对不对,如果代码写错了这个地方会告诉你代码出问题了,如果这个地方没问题,证明写的是正确的,再通过解释器,解释给操作系统,走一步运行一步走一步执行一步,程序就运行起来了。随着技术和硬件的发展,编译型和解释型界限逐渐模糊,电脑几乎都是8G,所以解释型效率也很高了。Java先编译到操作系统才解释,所以它两个特征都有)