把高级语言翻译成机器语言的两种方式:一种是解释,一种是编译。两种方式只是翻译的时间不同,一种是边翻译边运行,另一种是翻译所有的代码,然后开始运行。
- bat和shell 是比较纯粹的解释型语言和脚本语言
- perl和ruby 是先编译成parse tree然后解释运行
- java和python 是先编译成java字节码和python字节码然后再解释运行
- c和c++ 是纯粹的编译型语言,因为直接编译成为机器码
Java是编译执行还是解释执行?
java是先编译成class然后解释执行,但是后期:HotSpot虚拟机的执行引擎在执行Java代码是可以采用【解释执行】和【编译执行】两种方式的,如果采用的是编译执行方式,那么就会使用到JIT,而解释执行就不会使用到JIT,所以,早期说Java是解释型语言,是没有任何问题的,而在拥有JIT的Java虚拟机环境下,说Java是解释型语言严格意义上已经不正确了。