IT兄弟连 Java语法教程 Java开发环境 JVM、JRE、JDK
- 2019 年 10 月 5 日
- 筆記
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ITXDL123/article/details/92578635
要想开发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核心类库是jrelibrt.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关系图