要想开发Java程式,就需要知道什么是JVM、JRE以及JDK。JVM是执行Java程式的核心,JRE是支援Java程式执行的环境,而JDK是Java开发的核心,下面我们分别具体介绍它们以及它们之间的关系。
1.JVM(Java Virtual Machine,Java虚拟机器)
Java虚拟机器简称JVM,是一个抽象的计算机,和实际的计算机一样,它具有指令集并使用不同的储存区域(内存中不同的区域),JVM也就是Java程式的直译器。不同平台上的JVM也是不同的,但是它们都提供了相同的界面,JVM是Java程式跨平台特性的关键元素,只要为不同平台实现了相应的JVM,编译后的Java字节码就可以在该平台上执行。显然,相同的字节码档案想要直接在不同的平台上执行是不可能的(因为不同的平台有不同的指令集),只有通过中间的转换器(直译器)才可以实现,JVM就是这个转换器,在不同平台上的JVM将同一份字节码档案转换为不同平台上相应的机器指令。
Sun(Oracle)公司制定的Java虚拟机器规范在技术上规定了JVM的统一标准,及具体定义了JVM中的指令集、暂存器、类档案的格式、栈、垃圾回收堆和储存区。Sun公司制定的这些规范的目的就是为了提供统一的标准,最终实现Java程式的平台无关性。
2.JRE(Java Runtime Environment,Java执行时环境)
Java执行时环境简称JRE,是执行Java应用程序所必须的环境的集合,其中包含了JVM虚拟机器实现以及Java核心类库支援档案。Java核心类库是jre\\lib\\rt.jar这个档案。包括了Jave SE平台的所有类库。类库中主要的包如下:
● java.lang:这个是系统的基础类,比如Object、String等类都是这里面的,这个包是唯一一个不需要引入(import)就可以使用的包。
● java.io:这里面是所有输入输出有关的类,比如档案操作等。
● java.nio:为了完善io包中的功能,提高io包中效能而编写的一个新包(但不是为了替代io包)。
● java.net:这里面是与网络有关的类,比如URL、socket等。
● java.util:这个是系统工具类,其中包括了主要的集合如Collection、List和Map等。
● java.sql:这个是数据库操作的类,其中包括Connection、Statement等类。
如果仅仅需要执行Java程式,那么计算机中只需要安装JRE即可。
3.JDK(Java Development Kit,Java开发工具包)
顾名思义,JDK就是用来开发Java应用程序的软件包,JDK中包含了JRE以及JVM实现。JDK是Sun公司为了方便开发Java程式而提供的,JDK中提供了常用的程式设计所需要的工具库,因此Java开发者必须安装JDK,在JDK的基础上才能进行Java程式的开发。JDK中包含的一些常用的基本元件介绍如下:
● javac:编译器,将Java源代码转换成字节码档案。
● java:执行编译后的字节码档案(直译器)。
● jar:打包工具,将相关的类档案打包成一个.jar档案。
● javadoc:文件生成器,从源代码中的文件注释提取文件。
我们最后来总结一下JVM、JRE和JDK之间的关系,JDK中包含JRE,JRE中包含JVM,如图所示:
图JVM、JRE和JDK关系图