A: Java中的编译生成的是字节码文件而不是二进制机器指令
B:与操作系统无关
D:jvm可以有不同实现.低版本不一定能执行高版本的
编译型语言的首先将源代码编译生成机器语言,再由机器运行机器码(二进制)。像C/C++等都是编译型语言。程序执行效率高,依赖编译器,跨平台性差些,如C、C++、Delphi等。解释性语言在运行程序的时候才翻译,比如解释性basic语言,专门有一个解释器能够直接执行basic程序,每个语句都是执行的时候才翻译,这样解释性语言每执行一次就要翻译一次,效率比较低,如JavaScript、VBScript、Perl、Python、Ruby、MATLAB 等等。
Java不同于一般的编译语言和直译语言。==它首先将源代码编译成字节码,==然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编写,到处运行”的跨平台特性, 所以说java是一种半编译半解释型的语言。
记住虽然Java程序在运行之前也有一个编译过程,但是并不是将程序编译成机器语言,而是将它编译成字节码(可以理解为一个中间语言)