Java 语言运行机制
Java 介于编译型语言和解释型语言之间。编译型语言是指使用专门的编译器,针对特定操作系统将源代码直接编译成机器码执行;解释型语言是使指使用专门的解释器直接加载源代码然后运行;编译型语言和解释型语言两者各有优劣,前者可以通过多次编译实现低层次的代码复用而后者提供特定操作系统的解释器后直接运行,但这需要牺牲运行效率。Java 是将源代码编译成一种“字节码”,它类似于抽象的 CPU 指令,然后通过不同平台对应的 Java 虚拟机 JVM 加载字节码并执行。从而实现“一次编写,到处运行”的效果。
JVM :
Java Virtual Machine,它是一个抽象的计算机,和实际的计算机一样,它具有指令集并使用不同的存储区域。它负责执行指令,管理数据、内存和寄存器。
JDK 与 JRE
JDK 全称 Java Development Kit,即 Java 标准版开发包。它提供了编译、运行 Java 程序所需的各种工具和资源,包括 Java 编译器、Java 运行时环境、调试器等开发工具。JRE 全称 Java Runtime Environment,即 Java 运行时环境,它就是运行 Java 字节码的虚拟机。JDK 与 JRE 二者关系如下:
Java 版本
| 时间 | 版本 |
|---|---|
| 1995 | 1.0 |
| 1998 | 1.2 |
| 2000 | 1.3 |
| 2002 | 1.4 |
| 2004 | 1.5 / 5.0 |
| 2005 | 1.6 / 6.0 |
| 2011 | 1.7 / 7.0 |
| 2014 | 1.8 / 8.0(LTS) |
| 2017/9 | 1.9 / 9.0 |
| 2018/3 | 10 |
| 2018/9 | 11(LTS) |
| 2019/3 | 12 |
| 2019/9 | 13 |
| 2020/3 | 14 |
| 2020/9 | 15 |
