-
- 起源
-
- Java诞生
-
- JDK1.0
-
- JDK1.1
-
- JDK1.2
-
- JDK1.3
-
- JDK1.4
-
- JDK1.5
-
- JDK6
-
- JDK7
-
- JDK8
-
- JDK9
-
- JDK10
-
- 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发展历史
注:只列举了每次版本升级优化中的部分相对主要的一些技术或优化。