01、JDK发展史详解

    1. 起源
    1. Java诞生
    1. JDK1.0
    1. JDK1.1
    1. JDK1.2
    1. JDK1.3
    1. JDK1.4
    1. JDK1.5
    1. JDK6
    1. JDK7
    1. JDK8
    1. JDK9
    1. JDK10
    1. JDK11
  • *️ 一图总结

1. 起源

1991年,SUN公司开始着手“GREEN”项目,此项目旨在通过软件去控制电器产品的运行。而由于原本打算使用的C++语言应用在此项目中实现较复杂,于是由James Gosling 主导的项目组内工程师们转而设计开发了一个新的平台-OAK(橡树,据说名称来源于办公室外边的一颗橡树)。

*

图1Java起源

2. Java诞生

1995年05月,基于 HotJava 浏览器的成功(91到95年之间发生了一些插曲,Java最初发展并不是一帆风顺的,感兴趣的朋友可以自行了解),SUN公司将Oak(橡树平台)改名为Java,并在SunWorld会议上正式发布了java语言,提出了“Write once,Run anywhere"(一次编译,处处运行,说的是Java通过JVM虚拟机跨平台的特性)的宣传概念。

3. JDK1.0

1996年01月,jdk1.0发布。Java语言拥有了第一个正式版本的运行环境。新技术如下:
* JVM
*Applet
*AWT

*

图2JVM实现可移植性的原理

4. JDK1.1

1997年02月,创下当时同类会议参与者最多的记录的JavaOne会议召开,jdk1.1发布。 新技术如下:
* JDBC(Java database connectivity )
*内部类支持(inner class)
*Java Bean
*RMI(remote method invocation)
*反射(仅用于内省)

*

图3反射机制的相关API

5. JDK1.2

1998年12月,jdk1.2发布。此次发布将基础体系拆分为:J2SE 桌面应用开发 、J2EE 企业级应用开发、J2ME 移动终端开发。新技术如下:
*Collections集合框架
*JIT即时编译器(just in time)
*Java Plug-in(Java插件)
*JFC(Java foundation classes),包括swing1.0、Java 2D类库

*

图4JIT即时编译工作流程

此外,还包括:对字符串常量做内存映射,对打包的Java文件做数字签名,提供控制授权访问系统资源的策略工具,在JDBC中引入可滚动结果集、BLOB、批量更新和用户自定义类型,在Applet中添加声音支持等。
1999年4月,HotSpot虚拟机发布。

6. JDK1.3

2000年05月,jdk1.3发布。此时 Servlet 规范开始流行,而伴随着互联网的兴起,这项技术同其他 MVC 框架一起成为了 Web1.0时代的网红。新技术如下:
*JavaSound API
*jar文件索引

此外,还对Java的各方面做了一些优化和加强:优化Java类库如数学运算等,新的Timer API。

7. JDK1.4

2002年02月,jdk1.4发布。新技术如下:
*正则表达式
*异常链
*NIO
*日志类 Logging API
*XML解析器
*XSLT转换器
*参数API
*断言机制

此外,还包括:引入了Java打印服务、Java web start、JDBC 3.0 API、对IPv6的支持、Image I/O slot machine API等。

*

图5NIO的相关API

8. JDK1.5

*️*️ 2004年09月,jdk1.5发布。此版本对 Java 语言做出了一些重大的改进,为了表示该版本的重要性, 还将版本直接升级为 5.0。新技术如下:
* 泛型
*增强循环foreach
*自动装箱与拆箱
*类型安全的枚举
*元注解
*可变参数

9. JDK6

2006年12月,jdk6发布并且SUN宣布, 将 Java 语言免费开源,并且建立了 OpenJDK 组织对这些源码进行独立管理。新技术如下:
*脚本语言支持
*编译 Java Compiler API
*JDBC 4.0 API
*Web Services 微型HTTP服务器 API

10. JDK7

由于诸多因素,SUN公司于09年4月被Oracle公司收购了,受此影响新版本的开发工作也停滞了一段时间。直到2009年02月,jdk7发布。新的版本主要是一些技术优化处理,包括:
泛型对象类型推断、安全的加减乘除运算、map集合支持并发请求、try-with-resource异常处理、在一个语句块捕获多种异常、switch 添加 String 类型判断支持、数字字面量的改进等。

11. JDK8

*️*️ 2014年03月,近 20 年中变更最大的版本jdk8发布。这个版本中的 “函数式” 编程实现,可以容易的表述并发执行的计算。新技术如下:
* lambda表达式
*方法引用
*Stream 流式编程 API
*Optional
*函数式接口
*接口定义增强
*日期与时间的API增强
*JavaScript引擎

*

图6JDK5到JDK10的发展过程

12. JDK9

2017年09月,jdk9发布。也是同年8月,Oracle将JavaEE移交给了开源组织eclipse基金会。新技术如下:
*Jigsaw 模块系统
*轻量级JSON API
*jShell交互工具

13. JDK10

2018年03月,jdk10发布。优化如下:
*局部变量类型推断
*GC改进和内存管理

14. JDK11

2018年09月,jdk11发布。优化如下:
*ZGC垃圾收集器
*方法扩展(String、集合类、Stream、File)

*️ 一图总结

*

图7一张图总结JDK发展历史


注:只列举了每次版本升级优化中的部分相对主要的一些技术或优化。

参考链接:
Java发展时间线
Java 历史大版本及其详细特性介绍
jdk1.0至2.0主要特性介绍
JDK下载官网

*