很简单,如果你有学习过编译原理就会明白的。
C和Java都是高级编程语言,计算机是不会明白的,而要让计算机明白,就得找个“翻译”。
而这个“翻译”有两类,第一个是“翻译程序”,第二个是“解释程序”。
“翻译程序”的工作就是一次过将高级编程语言编写的代码翻译成低级语言代码,让计算机执行翻译后的代码。
“解释程序”的工作就是读取一句高级编程语言写的指令就解释成低级语言编写的指令,而采取一边解释一边执行的方式。
C就是翻译之后,让计算机执行翻译得到的程序。
Java很特别,在翻译这一步上,它不是翻译成直接可以运行的程序,而是“字节码”。“字节码”由当前操作系统安装的Java虚拟机一边解释一边执行,注意,相同程序得到的“字节码”是一样的,但是在不同操作系统下的虚拟机则不同。这样,就可以“一次编写,处处运行”。但是,一边解释一边执行是效率很低的,所以Java又出了JIT技术,就是Just In Time Compiler及时编译器,在执行时对一些常用的类花费一定时间进行编译,但是编译后执行效率很高,而编译只需要很少的时间,相对于浪费运行的时候宝贵的相应时间来说是很值得的。
总之,C写的程序是编译后由系统直接运行,Java是编译成字节码再由JVM执行解释执行字节码来运行程序,前者执行效率高,后者相对低。
温馨提示:内容为网友见解,仅供参考