Java语言浅谈
Java 属于什么语言?
Java 属于编译型+解释型的高级语言。
其实并不是因为有 javac 将 Java 源码编译成 class 文件,才说 Java 属于编译+解释语言,因为在这个编译器编译之后,生成的类文件不能直接在对应的平台上运行。 那为何又说 Java 是编译+解释语言呢?因为 class 文件终是通过 JVM 来翻译才能在对应的平台上运行,而这个翻译大多数时候是解释的过程,但是也会有编译,称之为运行时编译,即 JIT(Just In Time)。 综上所述,Java 是一门编译型+解释型的高级语言。
编译型语言:需通过编译器(compiler)将源代码编译成机器码,之后才能执行的语言。
解释型语言:解释性语言的程序不需要编译,相比编译型语言省了道工序,解释性语言在运行程序的时候才逐行翻译。
Java 语言存在初始化的步骤,会提前将一部分程序先行编译,在运行时会直接调用之前编译好的,这一步就是解释,所以说 Java 属于编译型+解释型的高级语言。
JVM是什么?
Java Virtual Machine 即 Java 虚拟机。
JVM 的作用就是将 class 文件翻译成操作系统所能识别的 01 文件。
不同的操作系统自然就需要翻译成不同的文件。所以我们在选择下载 JDK 时,会有对应操作系统的 JDK 版本。
从图中可以看到,无论是 java、javac 还是我们所使用的 JDBC,又或者是 API 接口,都是基于 JVM 的。这是因为 JVM 是运行在最底层的,JDK 和 JRE 都是运行在 JVM 之上的。
Java 源码文件想要得到运行,需要先将 Java 文件经过 javac 编译器编译成 class 文件,然后由 CPU 放入到虚拟机中运行。