首先拿python和C说明,python运行速度慢,和C程序相比非常慢,因为Python是解释型语言,你的代码在执行时会一行一行地被python解释器翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。而C/C++程序是编译型语言,运行前直接编译成CPU能执行的机器码,所以非常快。
但是Java呢?Java运行前需要编译,.java不经过编译就无法执行,所以有人就说Java是编译型的。
但是编译后的.class文件是字节码,并不是机器能直接执行的机器码,它是解释运行在JVM上的,所以也有人说它是解释型的。
对于C和C++,它们经过一次编译之后,可以由操作系统直接执行,所以它们是编译型语言。而Java不一样,它首先由编译器编译成.class(字节码)文件,然后在通过JVM从.class文件中读一行解释执行一行,所以它是解释型的语言。也正是由于java对于多种不同的操作系统有不同的JVM,所以实现了真正意义上的跨平台。
1)Java语言的编译-->解释-->运行过程
2)JVM
Java兼顾解释型和编译型的特点