Java语言是解释型语言?Java语言是编译型语言?学习
编译执行:经过编译器将源代码编译为机器码(机器能识别的代码指令),而后机器直接执行编译器
解释执行:指由解释器直接执行,不须要编译成机器语言编译
拿作饭来比喻,源代码就像食材:class
-
解释执行像吃火锅,一边煮一边吃,煮菜的人至关于解释器的地位(源代码一边解释,一边执行)技术
-
编译执行像炒菜吃,先把菜炒好再吃,炒菜的人至关于编译器的地位(源代码一次性编译,直接执行)语言
食材彻底能够作火锅吃,也能够作菜吃,不管怎么吃都只是吃的一种方式罢了di
一样的,不管解释执行仍是编译执行,其实只是源代码的一种执行方式而已文件
回到咱们的问题自己:时间
说Java是解释型语言,或编译型语言其实都是很荒谬的思考
- 这就像说萝卜必须作火锅吃,不能炒菜吃同样
正确的说法是Java某种特定实现是解释型的或者是编译型的
- 拿Java来讲,编译获得.class文件的步骤没法忽视,某些JVM内部实现也不是解释执行的,而是编译
- C语言是不少人根深蒂固的编译型语言,但实际上C语言也有它的解释器实现
因此,所谓的编译型和解释型并非语言的特性,而是语言实现的特性
启示:
- 不要固执于概念
- 不少概念随着时间和技术的发展,会变得不适用
- 学习技术要多思考,不要人云亦云