大家好,欢迎来到程序视点
!我是小二哥。
今天说说“为什么说Java语言是编译和解释并存的存在?”
通常,我们可以将高级编程语言按照程序的执行方式分为两种:
编译语言的执行速度比较快,开发效率比较低
。常见的编译性语言有 C、C++、Go、Rust 等等。解释型语言开发效率比较快,执行速度比较慢
。常见的解释性语言有 Python、JavaScript、PHP 等等。Java 语言既具有编译型语言的特征,也具有解释型语言的特征。 因此,我们说Java是编译和解释并存的。
我们来看看 Java 程序从源代码到运行的过程。(如下图所示)
第一步,.java通过javac编译成.class文件,这就是一次性的编译过程。 第二步,.class的字节码文件,需要解释为平台机器识别的代码才能调度运行。这就是解释器的特性。
小扩展
上图中,解释器边上还有个一个叫 JIT的东西。这是为了改善编译语言的效率而发展出的即时编译技术。
即时编译技术混合了编译语言与解释型语言的优点,它像编译语言一样,先把程序源代码编译成字节码。到执行期时,再将字节码直译,之后执行。
因此,从开发效率上讲,Java比通常的编译型语言要快;从执行效率上讲,Java又比解释型语言要快。
万金油的Java每样都要沾一点,哈哈~~