Java 和其他的高级语言一样,需要先翻译成低级语言才能被计算机执行。目前世界上这个编程语言翻译主要有两种方式
解释(interpreting)
编译(compiling)
完成解释任务的程序叫解释器,解释器会按行(一行一行的读取)对程序进行翻译,然后执行命令。
完成编译任务的程序叫做编译器,它会在高级语言执行之前一次性对该程序进行完整的编译,所以程序的运行是在编译过程之后。我们一般把这种高级语言称为源代码(source code,我们经常说的 coding 就是写源代码),编译器生成的程序称为可执行程序(executable)。
Java 比较强大,它既可以被编译也可以被解释,不同的是 Java 编译过程并不生成机器语言,而是生成字节码。字节码和机器语言一样,但是它具备高级语言的可移植性,因此在一台机器上编译 Java,在另外一台机器上也可以被解释运行。这正是 Java 语言在诞生的时候就瞬间超越了其他语言的核心原因:一次编写到处运行。
除了生成字节码之外,Java 还创建了 JVM (Java virtual machine ,Java 虚拟机),通过 JVM 支持了字节码的解释运行。
所以 Java 语言的进阶可以分为两层:Java 语言、JVM。了解这个对之后程序的运行和代码中出现的问题能够更容易理解。