如何解决Java和JDK的版本命名问题

小编给大家分享一下如何解决Java和JDK的版本命名问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

Java是面向对象的编程语言,在我们开发Java应用的程序员的专业术语里,Java这个单词其实指的是Java开发工具,也就是JDK(Java Development Kit)。所以我们常常在CSDN等各大程序员论坛讨论到安装Java8或者JDK8或者JDK1.8或J2SE8或J2SE1.8或J2SE8或J2SE1.8,其实这3个专业词汇的概念是一样的。

告诉庆哥,你对Java的版本号以及JDK的命名真正清楚嘛?比如:

  1. Java8

  2. Java SE 8.0

  3. JDK1.8

  4. ……

知道这些是怎么回事嘛?知道还有个Java 2的说法嘛?知道还有以下说法嘛?

  • J2SE1.3

  • J2SE1.4

  • ……

现在已经6月份了,到了9月份,一个新的长期支持版本,Java17就要发布了,啥?Java版本都到17了?不不不,我一直在用JDK1.8啊,咦,JDK1.8?Java17?

如何解决Java和JDK的版本命名问题

这是怎么回事呢?别着急,今天庆哥带你彻底搞懂这些蜜汁操作!

Java版本和JDK版本

要搞懂这些令人疑惑的人命名,那理解的一个关键就是Java版本和JDK版本了,首先啊,咱们常说Java有三个版本,对吧,分别是:

  • JavaSE(Java Platform,Standard Edition)Java标准版

  • JavaME(Java Platform,Micro Edition)Java微型版

  • JavaEE(Java Platform,Enterprise Edition) JAVA企业版

其实啊,你只要关注JavaSE就行,这个是Java的标准版本,像ME忽视就行,至于JavaEE是在JavaSE的基础上升级而来的一套规范,我们平常做Java开发,你想下,是不是就是需要个JDK,这个JDK是与JavaSE相对应的。

完了,我知道你们又懵了……

JavaEE到底是个啥

那我就再详细点给大家说说这个JavaEE,其实我们平常听到最多的,用到最多的就是JavaSE,因为人家是Java的标准版本,但是这个JavaSE提供的是Java的核心功能,一般是用来开发桌面应用的,但是企业级开发,我们做的项目啥的就不简简单单是个桌面级应用了,一般是web应用,动态网站这些!

那么问题来了,面对企业级的比较大的项目开发,JavaSE提供的一些核心基础功能用倒是可以用,但是用起来太费劲了,很多东西都得自己从头造轮子,一步步的用代码从最基础的开始写,费劲啊。

于是乎,在JavaSE的基础上整理出一套规范,其目的就是用来解决企业级开发中遇到的一些问题,这些问题就是单独用JavaSE去整比较费劲的东西!

那啥又是规范呢?说白了,就是规定你该怎样怎样去做,比如面对常见的web请求处理,我们知道有servlet,那JavaEE就对servlet做了规范,也就是说你如果要用servlet去处理一个web请求,首先嘞,你必须得实现一个HttpServlet类,这还没完,你这个类还得继承Servlet接口,而且你还得实现它的接口方法,哪些呢?就是doGet和doPost这些,咋样,熟悉吧,再比如你这个doGet方法还必须得接收两个参数……

你看,JavaEE就给你规定了Servlet得按照这个规定去使用,于时一些其他厂商就围绕JavaEE的这些规范去做一些具体的实现,比如我们常见的tomcat,它被成为servlet容器,其中的servlet实现就是给予JavaEE对servlet做出的规范!

说的再简单点,JavaEE规定了servlet如何去处理web请求,然后具体的厂商根据这个规定去做具体的实现和增强,然后就搞出了tomcat……

那Spring是啥呢?最开始的Spring就是为了解决JavaEE在使用中遇到的一些问题,比如JavaEE中规定的servlet,那spring中的spring-mvc就是对这个servlet的进一步封装,从而让其变得更加好用!

实际上,spring中大量使用了或者实现了JavaEE的一些规范标准!说的再直白点,你JavaEE不是一组规范嘛,规定了啥啥啥该怎么用,那我spring就这样做,你规范中确实比较好用的我就直接拿来用,不好用的我就在加工处理封装成更好用的,可以简单的理解成spring就是JavaEE的升级版,或者超强实现版!

如何解决Java和JDK的版本命名问题