讨论:Java 是编译型还是解释型语言?
回答1: 见知乎 郭无心 的回答:
有人说Java是编译型的。因为所有的Java代码都是要编译的,.java不经过编译就无法执行。也有人说Java是解释型的。因为java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释型的。
对于C和C++,它们经过一次编译之后,可以由操作系统直接执行,所以它们是编译型语言。而Java不一样,它首先由编译器编译成.class(字节码)文件,然后在通过JVM从.class文件中读一行解释执行一行,所以它是解释型的语言。也正是由于java对于多种不同的操作系统有不同的JVM,所以实现了真正意义上的跨平台。
(1)Java语言的编译–>解释–>运行过程
(2)JVM
可以说Java是兼具编译型语言与解释型语言的特点的。
回答2: Java的源代码首先被编译成字节码,然后依赖各种不同平台的虚拟机来解释执行字节码。
回答3: 见知乎 路人 的回答
先看下定义:
编译型语言: 把做好的源程序全部编译成二进制代码的可运行程序,然后,可直接运行这个程序。
解释型语言: 把做好的源程序翻译一句,然后执行一句,直至结束!
Java它是首先由编译器编译成.class
(字节码)文件,然后在通过JVM从.class
文件中读一行解释执行一行,所以它是解释型的语言,也正是由于java对于多种不同的操作系统有不同的JVM,所以实现了真正意义上的跨平台。
参考资料:
- 知乎:Java 是编译型语言还是解释型语言?
爱上极客:简述编译型与解释型编程语言
大前端开发者需要了解的基础编译原理和语言知识 (这篇文章讲了有关编译器、解释器、编译原理等知识,挺详细的。)