Java基础知识专题2-JVM、JDK、JRE
前言
上一章我们在说到Java语言的特点是,这一章我们简单讲一下Java的基础组成部分,也是不少新手下载安装Java时总是迷惑的,到底是安装JDK还是JRE?JVM又是什么东西?为什么不用安装?
三“J”的关系
咱们先看下面这种图,大家暂时不用关心每个小格中的内容,后续会专门讲这些东西,先看右侧的大括号包含关系:
可以看出JDK、JRE、JVM三者。各自即是一个重要内容,同时也存在着依赖和包含关系:
从上面两张图我们大致了解了三“J”的关系,那么接下来我们注意讲解一下每个“J”的用处和其包含的内容。
JDK
首先是JDK,它是Java Development Kit的缩写,从字面上就可以翻译出它是Java开发套件。一提到开发套件这个词,我们就应该理解到这个套件一定是为开发人员准备的,且功能必然齐全。因为开发需要编写、资料、调试、运行、纠错等一系列的动作,所以JDK包含着Java一堆开发所需的工具(如:javac、java、javadoc、JConsole等)、运行环境(JRE)。
而为了方便的区分不同的使用场景,JDK还按照使用场景封装了三个不同的版本:
- J2SE:Java to standard edition,Java标准版,是我们最常用的版本;
- J2EE:Java to enterprise edition,Java企业版,顾名思义是企业授权版本,用的比较少;
- J2ME:Java to micro edition,Java移动版或者说是设备版,多用在移动设备和嵌入式设备中,逐渐被Android替代。
OpenJDK和OracleJDK
- OpenJDK可以说是原始版的JDK,它是基于Sun捐赠的HotSpot源码,完全开源的一个社区版JDK(当然现在也是Oracle的工程师在维护),而OracleJDK则是OpenJDK的一个实现,并不是完全开源的;
- Oracle JDK 比 OpenJDK 更稳定。OpenJDK和Oracle JDK的代码几乎相同,但Oracle JDK有更多的类和一些错误修复。因此,如果您想开发企业/商业软件,我建议您选择Oracle JDK,因为它经过了彻底的测试和稳定性维护。某些情况下,有些人提到在使用OpenJDK 时,可能会遇到了许多应用程序崩溃的问题,但是,只需切换到Oracle JDK就可以解决问题;
- 在响应性和JVM性能方面,Oracle JDK与OpenJDK相比提供了更好的性能;
- Oracle JDK不会为即将发布的版本提供长期支持,用户每次都必须通过更新到最新版本获得支持来获取最新版本;
- Oracle JDK根据二进制代码许可协议获得许可,而OpenJDK根据GPL v2许可获得许可。
JRE
其次是JRE,它是Java Runtime Environment即Java运行时环境的缩写,顾名思义这个软件就是用来运行Java程序的。
JRE是Java程序运行不可或缺的软件(所以JDK里面要有他)。而JRE由于少了开发工具,所以要比JDK轻便很多,更加方便用户安装使用,只是执行其运行Java程序的能力。
JRE包含着:Java基础的类库(如:Java API的jar等)和JVM。
JVM
最后是JVM,它就是我们最常说的Java虚拟机:Java Virtual Machine的缩写,JVM是整个Java语言的最核心部分,也是通过JVM使Java语言做到了跨平台。
从上面这张图可以看出,由于JVM的存在,只需要针对不同平台适配JVM,而Java代码则不用做任何适配调整即可运行在不同平台上。就好像一个“充电转换头”:一头永远是电源接口,另一头则遇到安卓用安卓的接口、遇到iphone则用iphone的接口。
结语
通过本章的希望大家能够对Java中的三大“J”有个简单的认识,同时知道他们之间的关系。下一章我们会分析一下Java代码是怎么从编写到运行的,从而对前两张所说的Java特点和三“J”的关系有个原理上的认识,也能够让我们更加了解自己写的代码是怎么跑起来的。