C语言和JAVA语言的运行机制有何不同

C语言和JAVA语言的运行机制有何不同?哪位高人能回答一下啊?

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

另外,在编译的时候,二者也是不同的。C++编译器将C++编译成C,然后C语言直接转换成机器指令运行。而java通过java编译器之后则变为Bytecode,然后变成机器指令被识别。
java爱好者很高兴为你解答本回答被提问者采纳
第2个回答  2010-10-20
C是运行在操作系统上的。java是运行在java虚拟机上的。
相似回答