- JDK(Java SE Development Kit):Java 的开发工具包,是整个 Java 的核心。它提供编译、运行 Java 程序所需的各种工具和资源,包括Java运行环境、Java编译器,以及 Java 的各种类库等。
- JRE(Java Runtime Environment):Java 的运行环境,用于运行 Java 的字节码文件,JRE里面包含了JVM以及JVM运行所需要的类库(runtime class libraries和Java application launcher)。如果只是Java的使用者,则只需要按照JRE即可。开发者则必须安装JDK去对Java程序进行编译、调试等。
- JVM(Java Virtual Mechinal):Java 虚拟机,属于JRE的一部分,是Java实现跨平台的最核心的部分,负责字节码的运行。JVM 有针对不同系统的特定实现(Windows,Linux,macOS),目的是当使用相同的字节码时,可以生成相同的结果。这个就是Java跨平台的关键。
编写Java代码可以通过任意软件来编写如txt、idea、vscode等。但写出的Java程序想要运行,就得先编译成字节码文件( 后缀为.class文件),那就需要一个编译器,而JDK中就包含编译器 javac,再通过可执行字节码的程序(JVM)去执行生成结果。
JDK中包含JRE,而JRE中又包含了JVM。
JVM在执⾏Java字节码时,需要把字节码解释为机器指令,⽽不同操作系统的机器指令是有可能不⼀样的,所以就导致不同操作系统上的JVM是不⼀样的,所以我们在安装JDK时需要选择操作系统。
另外,JVM是⽤来执⾏Java字节码的,所以凡是某个代码编译之后是Java字节码,那就都能在JVM上运⾏,⽐如Apache Groovy, Scala and Kotlin 等等。
下面这语言经过编译后生成的均是class文件。