Java是编译型语言还是解释型语言?

Java是到底是编译型语言还是解释型语言?

        首先,我们来明确一下什么是编译型语言和解释型语言。

               1.编译型语言:如 C、C++,该类语言通过编译器直接生成计算机可以识别的机器语言,需要编译通过后才可以执行。

               2.解释型语言:如Python、JavaScript 、Shell、html等, 程序不需要编译,程序在运行时才翻译成机器语言,每执行一次都要翻译一次,因此相对于编译型      语言来说效率较低。

      对于Java来说,其语言的特殊性可以将其视为编译型语言,也可以看做解释型语言。一个Java程序的运行过程是这样的:首先,Java在运行前需要先将其编译为.class文件(java helloworld.java),此步必不可少,所以可以称Java是编译型语言。该文件由字节码组成,虚拟机JVM再将该文件逐行读取解释执行(javac helloworld),这又可将其视为解释型语言(PS:不同操作系统平台的JVM对.class文件在相应的jre环境下解释成相应的可以识别的程序,这也就是常说的Java语言平台无关性)。

           从开发人员角度来看,Java属于编译型 语言,因为在java开发集成环境中需通过编译后即可执行出自己预期结果;从其底层实现机制来看,Java属于解释型语言,程序的执行还是要靠JVM对.class文件的逐行解释。我们只需知道为什么Java不能像其他语言一样明确地划分为编译型或解释型,而不必纠结于它到底属于哪一种。

   

      java学习新人,仅供参考,错误不足之处望批评指教。

猜你喜欢

转载自blog.csdn.net/dwing_/article/details/52243339