解释性的语言和编译性的语言(转)

<一>翻译的方式有两种,一个是编译,一个是解释。两种方式只是翻译的时间不同。
    1.编译型语言写的 程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高。 例如C++。
    2.解释则不同,解释性语言的程序不需要编译,省了一道工序,解释性语言在运行程序的时候才翻译,比如解释性basic语言,专门有一个解释器能够直接执行basic程序,每个语句都是执行的时候才翻译。这样解 释性语言每执行一次就要翻译一次,效率比较低。
    <二>java是解释性的语言还是编译性的语言?
    1.java程序的运行过程,程序运行时先将.java文件通过编译器编译成字节码文件(.class文件),然后java虚拟机将.class文件进行解释,进而执行。
    2.java很特殊,java程序也需要编译,但是没有直接编译称为机器语言,而是编译称为字节码,然后用解释方式执行字节码。Java既可以被编译,也可以被解释。通过编译器,可以把Java程序翻译成一种中间代码 - 称为字节码 - 可以被Java解释器解释的独立于平台的代码。通过解释器,每条Java字节指令被分析,然后在计算机上运行。只需编译一次,程序运行时解释执行。
    3.java compiler  只是把source编译成jvm可辨识的中间代码,程序运行时,jvm再把代码根据不同的cpu,不同的os,解释成相应的机器码。所以java能跨平台

结论:
     java既是编译性语言又是解释性的语言

猜你喜欢

转载自javaeedevelop.iteye.com/blog/1723032