Java语言既是编译型语言,也是解释型语言。或者说,Java语言既不是纯粹的编译型语言,也不是纯粹的编译型语言。
Java程序的执行过程必须经过先编译、后解释两个步骤。
编译:生成一种与平台无关的字节码(.class文件),它是非可执行性的;
解释:使用Java解释器来解释执行。
Java语言不是纯粹的编译型语言:由Java语言编写的程序经过编译步骤生成的不是特定平台的机器码而是.class文件,且不可执行。
Java语言不是纯粹的解释型语言:虽然有专门的解释器(Java解释器,即JVM),但是Java解释器是解释执行.class文件从而生成特定平台的机器码,而不是将源程序逐行解释成特定平台的机器码后再立即执行。
参考文献:[1] 李刚.疯狂Java讲义[M].3版.北京:电子工业出版社,2014: 6-7.