JDK发展历史以及版本特性Tomcat与JDK版本对应关系
1. JDK发展历史以及版本特性
1995年5⽉23 java(原名Oak)诞⽣,并且在SunWorld⼤会上正式发表了java1.0版本。
1996年1⽉23 JDK1.0发布Java语⾔有了第⼀个正式版本的运⾏环境。JDK1.0提供了⼀个纯解释执⾏的Java虚拟机的实现(Sun class VM)。JDK1.0的代表技术:JVM,Applet,AWT.
1997年2⽉19⽇,JDK1.1,新特性:JAR⽂件格式、JDBC、JavaBean、RMI、内部类(Inner class)、反射(Reflection)
1998年12⽉4⽇,JDK1.2,新特性:基础体系拆分:J2SE(⾯向桌⾯应⽤程序开发)、J2EE(⾯向企业级应⽤开发程序开发)、
J2ME(⾯向⼿机等移动终端开发),技术:EJB、Java Plug-in、JavaIDL 、Swing、JIT(Just In Time)编译器.
2000年5⽉8⽇JDK1.3:使⽤CORBA IIOP实现RMI的通信协议,改进Java2D,添加JavaSound类库。
2002年2⽉13⽇JDK1.4 ,新特性:正则表达式,异常链,NIO,⽇志类,XML解析器,XLST转换器。
servlet和tomcat的关系
2004年9⽉30⽇,JDK1.5,新特性:⾃动装箱、泛型、动态注解、枚举、可变长参数、遍历循环。
2006年12⽉11⽇,JDK1.6,新特性:提供动态语⾔⽀持、提供编译API和卫星HTTP服务器API,改进JVM的锁,同步垃圾回收,类加载。
2009年2⽉19⽇JDK1.7,新特性:提供GI收集器、加强对⾮Java语⾔的调⽤⽀持(JSR-292,升级类加载架构。
2014 年 3 ⽉ 18 ⽇ JDK1.8新特性:Lambda 表达式、⽅法引⽤、默认⽅法、新⼯具、Stream API、Date Time API 、Optional 类、Nashorn, JavaScript 引擎。
介绍⼀下JDK1.8的特性:
Lambda 表达式 − Lambda允许把函数作为⼀个⽅法的参数(函数作为参数传递进⽅法中。
⽅法引⽤ − ⽅法引⽤提供了⾮常有⽤的语法,可以直接引⽤已有Java类或对象(实例)的⽅法或构造器。与lambda联合使⽤,⽅法引⽤可以使语⾔的构造更紧凑简洁,减少冗余代码。
默认⽅法 − 默认⽅法就是⼀个在接⼝⾥⾯有了⼀个实现的⽅法。
新⼯具 − 新的编译⼯具,如:Nashorn引擎 jjs、 类依赖分析器jdeps。
**Stream AP**I −新添加的Stream API(java.util.stream) 把真正的函数式编程风格引⼊到Java中。
Date Time API − 加强对⽇期与时间的处理。
Optional 类 − Optional 类已经成为 Java 8 类库的⼀部分,⽤来解决空指针异常。
Nashorn, JavaScript 引擎 − Java 8提供了⼀个新的Nashorn javascript引擎,它允许我们在JVM上运⾏特定的javascript应⽤。
JDK
Version
发布时间代号备注
11996/1/23Oak(橡树)初代版本,伟⼤的⼀个⾥程碑,但是是纯解释运⾏,使⽤外挂JIT,性能⽐较差,运⾏速度慢
1.11997/2/19Sparkler(宝⽯)JDBC、⽀持内部类、RMI、反射。。。
1.21998/12/8Playground(操场)集合框架、JIT。。。
1.32000/5/8Kestrel(红隼)对Java的各个⽅⾯都做了⼤量优化和增强
1.42004/2/6Merlin(隼)xml处理、⽀持IPV6、⽀持正则表达式
52004/9/30Tiger(⽼虎)泛型、增强for、⾃动拆装箱、可变参数、静态导⼊、注解62006/12/11Mustang(野马)⽀持脚本语⾔、JDBC4.0
72011/7/28Dolphin(海豚)switc⽀持String类型、泛型推断、Nio.2开发包、数值类型可以⽤⼆进制字符串表⽰
82014/3/18Spider(蜘蛛)Lambda 表达式、接⼝默认⽅法、Stream API 、新的⽇期API、Nashorn引擎jjs
92017/9/22Modularity(模块化)
模块系统、HTTP 2 客户端、多版本兼容 JAR 包、私有接⼝⽅法、改进的 Stream
92017/9/22Modularity(模块化)
API、响应式流(Reactive Streams) API:
102018/3/21var 局部变量类型推断、统⼀的垃圾回收接⼝
112018/9/25HTTP客户端(标准)、⽆操作垃圾收集器。⾸个LTS版本
122019/3/19新增⼀个名为 Shenandoah 的垃圾回收器、扩展switch语句的功能、改进 G1 垃圾回收器
2. Tomcat与JDK版本对应关系
Servlet Spec JSP
Spec
EL
Spec
WebSocket
Spec
JASPIC
Spec
Apache Tomcat
Version
Latest Released
Version
Supported Java Versions
4  2.33  1.1  1.19.0.x9.0.68 and later
3.1  2.33  1.1  1.18.5.x8.5.297 and later
3.1  2.33  1.1N/A8.0.x (superseded)8.0.50 (superseded)7 and later
3  2.2  2.2  1.1N/A7.0.x7.0.85  6 and later(7 and later for WebSocket) 2.5  2.1  2.1N/A N/A  6.0.x (archived)  6.0.53 (archived)  5 and later
2.42N/A N/A N/A  5.5.x (archived)  5.5.36 (archived)  1.4 and later
2.3  1.2N/A N/A N/A  4.1.x (archived)  4.1.40 (archived)  1.3 and later
2.2  1.1N/A N/A N/A
3.3.x (archived)  3.3.2 (archived)  1.1 and later
3.
Java发展的时间表。 (版本号 名称 中⽂名 发布⽇期)
  JDK 1.1.4 Sparkler 宝⽯ 1997-09-12
  JDK 1.1.5 Pumpkin 南⽠ 1997-12-13
  JDK 1.1.6 Abigail 阿⽐盖尔--⼥⼦名 1998-04-24
  JDK 1.1.7 Brutus 布鲁图--古罗马政治家和将军 1998-09-28
  JDK 1.1.8 Chelsea 切尔西--城市名 1999-04-08
  J2SE 1.2 Playground 运动场 1998-12-04
  J2SE 1.2.1 none ⽆ 1999-03-30
  J2SE 1.2.2 Cricket 蟋蟀 1999-07-08
  J2SE 1.3 Kestrel 美洲红隼 2000-05-08
  J2SE 1.3.1 Ladybird 瓢⾍ 2001-05-17
  J2SE 1.4.0 Merlin 灰背隼 2002-02-13
  J2SE 1.4.1 grasshopper 蚱蜢 2002-09-16
  J2SE 1.4.2 Mantis 螳螂 2003-06-26
  J2SE 5.0 (1.5.0) Tiger ⽼虎 2004-10
  J2SE 6.0 (Beta) Mustang 野马 2006-04
  从这个表中我们可以看出⼀个⾮常有意思的现象,就是JDK的每⼀个版本号都使⽤⼀个开发代号表⽰(就是表中的中⽂名)。⽽且从JDK1.2.2开始,主要版本(如1.3,1.4,5.0)都是以鸟类或哺乳动物来命名的. ⽽它们的bug修正版本(如1.2.2,1.3.1,1.4.2)都是以昆⾍命名的。
1995年5⽉23⽇,Java语⾔诞⽣
1996年1⽉,第⼀个JDK-JDK1.0诞⽣
1996年4⽉,10个最主要的操作系统供应商申明将在其产品中嵌⼊JAVA技术
1996年9⽉,约8.3万个⽹页应⽤了JAVA技术来制作
1997年2⽉18⽇,JDK1.1发布
1997年4⽉2⽇,JavaOne会议召开,参与者逾⼀万⼈,创当时全球同类会议规模之纪录
1997年9⽉,JavaDeveloperConnection社区成员超过⼗万
1998年2⽉,JDK1.1被下载超过2,000,000次
1998年12⽉8⽇,JAVA2企业平台J2EE发布
1999年6⽉,SUN公司发布Java的三个版本:标准版、企业版和微型版(J2SE、J2EE、J2ME)
2000年5⽉8⽇,JDK1.3发布
2000年5⽉29⽇,JDK1.4发布
2001年6⽉5⽇,NOKIA宣布,到2003年将出售1亿部⽀持Java的⼿机
2001年9⽉24⽇,J2EE1.3发布
2002年2⽉26⽇,J2SE1.4发布,⾃此Java的计算能⼒有了⼤幅提升。
2004年9⽉30⽇18:00PM,J2SE1.5发布,是Java语⾔的发展史上的⼜⼀⾥程碑事件。为了表⽰这个版本的重要性,J2SE1.5更名为
J2SE5.0
2005年6⽉,JavaOne⼤会召开,SUN公司公开Java SE 6。此时,Java的各种版本已经更名以取消其中的数字“2”:J2EE更名为Java EE, J2SE更名为Java SE,J2ME更名为Java ME。
2006年11⽉13⽇,SUN公司宣布Java全线采纳GNU General Public License Version 2,从⽽公开了Java的源代码。