JVM、JRE、JDK区别
JDK Java Virtual Machine(Java虚拟机)-java程序的运行环境,JVM是一种用于计算设备的规范(所以可以有很多种JVM,甚至可以自己开发JVM),是虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
Java虚拟机本质上就是一个程序,当它在命令行上启动的时候,就开始执行保存在某字节码文件中的指令。Java语言的可移植性正是建立在Java虚拟机的基础上。任何平台只要装有针对于该平台的Java虚拟机,字节码文件(.class)就可以在该平台上运行。这就是“一次编译,多次运行”。
JRE Java Runtime Environment(Java运行环境),JRE=JVM+基础类库(线程类、日期类、IO类等),是一个软件,JRE可以让计算机系统运行Java应用程序(Java Application)。
JDK Java Development Kit( Java软件开发工具包),JDK=JVM+基础类库+编译工具,它是一种用于构建在 Java 平台上发布的应用程序、applet 和组件的开发环境。”
JDK包含的基本组件包括:
-
javac – 编译器,将源程序转成字节码
-
jar – 打包工具,将相关的类文件打包成一个文件
-
javadoc – 文档生成器,从源码注释中提取文档
-
jdb – debugger,查错工具