首页 > 编程语言 >一文彻底搞懂令人疑惑的Java和JDK的版本命名!

一文彻底搞懂令人疑惑的Java和JDK的版本命名!

时间:2024-03-21 10:56:48浏览次数:36  
标签:Java JDK JavaEE 版本 搞懂 servlet JavaSE

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

  1. Java8
  2. Java SE 8.0
  3. JDK1.8
  4. ……

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

  1. J2SE1.3
  2. J2SE1.4
  3. ……

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


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

Java版本和JDK版本

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

  1. JavaSE(Java Platform,Standard Edition)Java标准版
  2. JavaME(Java Platform,Micro Edition)Java微型版
  3. 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的升级版,或者超强实现版!

随着时间的发展,JavaEE的更新太慢了,而Spring就非常迅速,而且人家超级好用,因此,慢慢的JavaEE早就落后十万八千里了。

你像我们平常做开发,就下载配置个JDK,其实就是对应的JavaSE,然后我们使用的一般就是以Spring为主的框架了,那JavaEE体现在哪里,Spring框架中大量使用和实现了JavaEE规范,而JavaEE又是在JavaSE基础上升级而来的一组规范,那可不就是一个JDK就行了!

所以,现在你看一些关于JavaEE开发框架的书,其实都是在介绍SSM这些框架的,说白了,JavaEE慢慢也就成了各种给予其规范实现的一些框架了,为首的就是老大哥Spring了!

Java版本的蜜汁操作

以上花了较多篇幅去介绍到底啥是JavaEE以及和Spring的一些关系,你就记住:

用Spring就对了

那我们再来看Java版本号的这些神奇操作,之前也说了,理解的关键就是Java版本和JDK版本,重点理解如下:

我们无论说Java版本还是JDK版本都是对于JavaSE这个标准版本而言,最终的则是要知道,每个Java版本其实是对应一个具体的JDK版本,也就是说Java是语言,JDK是Java这门语言的开发工具包,所以Java的版本可以说是抽象上的宏观上的一个概念,有其自己的版本名称,对应的具体的实实在在存在的则是JDK了

记住啦,一个Java版本对应着一个JDK版本!

我这里画了一个图,大家一起来看下:

 

也就是最开始啊,Java的早期版本是在1995年发布的,那个时候是叫做Oak,但是这个商标被注册了,于时在1996年的时候更改为Java,那这个时候Java的第一个正式版本Java1.0就发布了,于此同时对应的开发工具包jdk的版本就是JDK1.0了。

J2SE是个啥

那随着时间的发展,Java的版本不是一直叫做Java1.X这种形式,在到了1998年的时候,Java的平台更名为J2SE,所以从那个时候,Java的版本命名就成了J2SE 1.2这种形式,也就是这里:

 

那与之对应的JDK的版本就是JDK1.2和JDK1.3这种形式了!

JDK1.5的重大变化

那到了2004年的时候,Java版本变化比较大,此时对应的JDK1.5升级比较大,那为了表明该版本的重要性,于时将Java版本从原来的J2SE 1.5更名为Java SE 5.0(内部版本号1.5.0),于是后续的Java版本号都是Java SE X的这种形式,也就是这样:

 

这里需要注意的是,直到2017年JavaSE 9的发布,此时对应的JDK版本都是JDK1.X这种形式,但是到了2018年JavaSE 10的发布就变了!

JDK命名的变化

到了2018年发布JavaSE 10的时候,此时对应的JDK版本不再是JDK1.10这种形式,而是变成了JDK10这种形式,其实这个也是比较好理解的!

那后续的版本就是这个样子了:

 直到现在一直就稳定这样的命名了,比如最新的JavaSE 16对应的JDK16,那到了这里,又有个蜜汁操作了,我们看下Oracle的官网上的JDK变化:

 看到没,这里有JDK7,JDK8还有JDK9,按照我们之前说的不应该是这样的嘛:

 

所以说啊,关于Java的版本和JDK版本命名真的挺乱的,在2018年更新JavaSE 10之后,对应的JDK版本叫做JDK10,后续为了方便统一,之前的JDK1.8也可以叫做JDK8了!

不过到了现在,Java的版本号比较稳定了,也就是Java SE XX这种形式,比如即将发布的Java SE 17,这是一个长期受支持的版本!那对应的JDK版本就是JDK17了。

查看JDK版本的更新内容

作为一个Java程序员,你要随时关注着Java的版本更新,以及JDK的升级带来了哪些新特性,那该如何关注这些呢?

其实就是这个:

 比如我们点击最新的JDK16:

 

 

不知道的赶紧收藏这个地址吧:https://docs.oracle.com/en/java/javase/index.html

查看Javav版本变化

另外这里再提供一个随时查看Java版本变化的地址,可以看到一个比较直观的图片,就是这样的:

 

是不是很直观呢?

赶紧收藏地址吧:https://zh.wikipedia.org/wiki/Java%E7%89%88%E6%9C%AC%E6%AD%B7%E5%8F%B2

标签:Java,JDK,JavaEE,版本,搞懂,servlet,JavaSE
From: https://www.cnblogs.com/caihongmin/p/18086845

相关文章

  • 基于java+springboot+vue实现的电影院选票系统(文末源码+Lw+ppt)23-467
    摘要时代在飞速进步,每个行业都在努力发展现在先进技术,通过这些先进的技术来提高自己的水平和优势,电影院选票系统当然不能排除在外。电影院选票系统是在实际应用和软件工程的开发原理之上,运用java语言,前台Vue框架以及后台SpringBoot框架进行开发。首先要进行需求分析,分析出电......
  • 基于java+springboot+vue实现的智慧养老院管理系统(文末源码+Lw+ppt)23-490
    摘 要智慧养老院管理系统采用B/S架构,数据库是MySQL。网站的搭建与开发采用了先进的java进行编写,使用了springboot框架。该系统从三个对象:由管理员和家属、护工来对系统进行设计构建。主要功能包括:个人信息修改,对家属信息、护工信息、老人入住、外出报备、退房登记、每月餐饮......
  • 基于java+springboot+vue实现的学生管理系统(文末源码+Lw+ppt)23-486
    摘  要学生管理系统的目的是让使用者可以更方便的将人、设备和场景更立体的连接在一起。能让用户以更科幻的方式使用产品,体验高科技时代带给人们的方便,同时也能让用户体会到与以往常规产品不同的体验风格。与安卓,iOS相比较起来,学生管理系统在流畅性,续航能力,等方方面面都有......
  • 基于java+SpringBoot+Vuel的制造装备物联及生产管理ERP系统设计与实现
    基于java+SpringBoot+Vuel的制造装备物联及生产管理ERP系统设计与实现开发语言:Java数据库:MySQL技术:SpringBoot+MyBatis工具:IDEA/Ecilpse、Navicat、Maven系统展示前台展示系统简介制造装备物联及生产管理ERP系统在对开发工具的选择上也很慎重,为了便于开发实现,选......
  • day01-jdk配置环境
    右键此电脑-----》点击属性----》高级系统设置-------》环境变量新建系统变量-----》变量名:JAVA_HOME 变量值: 为你安装jdk的目录在系统变量中找到Path双击打开-------->点击新建-----》输入:%JAVA_HOME%\bin最后连续确认配置完成!!!!!新打开一个cmd输入javajavac......
  • java 差异删除 差异更新与删除
    publicbooleanrelation(LongprojectId,List<BsMemberEntity>members){ //1)、获取原关联数据 List<ProProjectAuthorEntity>oldList=this.findByProjectId(projectId); List<Long>oldMemberIds=oldList.stream().map(item->{ returnitem......
  • 基于Java的桃花峪滑雪场租赁系统(Vue.js+SpringBoot)
    目录一、摘要1.1项目介绍1.2项目录屏二、功能模块2.1游客服务2.2雪场管理三、数据库设计3.1教练表3.2教练聘请表3.3押金规则表3.4器材表3.5滑雪场表3.7售票表3.8器材损坏表四、系统展示五、核心代码5.1查询教练5.2教练聘请5.3查询滑雪场5.4滑雪场预......
  • 基于Java+Springboot技术仓库管理系统的实现+项目全套源码+完整文档源码说明+毕业论文
    摘 要现如今,许多企业存在的问题:信息化不足,计算机使用率不高,大量的日常工作皆是手工处理,因此工作效率低,企业内部沟通不良等等问题很难克服。要提升企业竞争力,企业内部信息化是不可缺少的一个步骤。所以要实施先进的自动化系统,实现企业内部信息管理、共享及交流,才能让企业在......
  • 【JAVA------基础篇】
    java基础1.JDKJDK:javadevelopmentkitJRE:javaruntimeenvironmentJDK包含JREjava跨平台:因为java程序运行依赖虚拟机,虚拟机需要有对应操作系统的版本,而jre中有虚拟机。当你想要在Linux系统下运行,则需要安装对应的虚拟机,及对应的jdk版本,而对应的jdk版本中的jre有对......
  • JAVA------基础篇
    java基础1.JDKJDK:javadevelopmentkitJRE:javaruntimeenvironmentJDK包含JREjava跨平台:因为java程序运行依赖虚拟机,虚拟机需要有对应操作系统的版本,而jre中有虚拟机。当你想要在Linux系统下运行,则需要安装对应的虚拟机,及对应的jdk版本,而对应的jdk版本中的jre有对......