Oak
时间:1990年年末
事件:Sun公司成立了一个由James Gosling博士领导的绿色计划(Green Project)
目的:开发一种能够在各种消费性电子产品(如机顶盒、冰箱、收音机等)上运行的程序架构
结果:催生出Oak语言
Java 1.0
时间:1995年5月23日
事件:Oak语言更名为Java,并且在 Sun World大会上正式发布Java 1.0版本。Java 语言第一次提出了“Write Once, Run Anywhere”的口号。
特性:初版即包含JRE、JDK
技术点:Classic VM(虚拟机)、Applet(Java 小应用程序)、AWT(Java 图形设计)
虚拟机:Java1.0、1.1、1.2的默认虚拟机都是SUN Classic VM,Java1.3时成为备用虚拟机,Java1.4 时被舍弃
时间:1996年5月底**,Sun 公司于美国旧金山举行了首届JavaOne大会,从此JavaOne成为全世界数百万Java语言开发者每年一度的技术盛会。
Java 1.1
时间:1997年2月19日,Sun公司发布了JDK 1.1
特性:JAR文件格式、JDBC、Inner Class、RMI、Reflection、JavaBean
Java 1.2
1998年12月4日,Sun公司发布了JDK1.2, 这是个里程碑式的版本,工程代号为Playground(竞技场)
该版本中将Java技术体系拆分成3个方向,即J2SE、J2EE、J2ME
Java 虚拟机第一次内置了 JIT (Just In Time)编译器
添加了 strictfp关键字
集合框架
对打包的Java文件进行数字签名
JFC, 包括Swing 1.0, 拖放和Java2D类库
Java Plug-in
JDBC中引入可滚动结果集,BLOB,CLOB,批量更新和用户自定义类型
Applet中添加声音支持
1999年4月27日, HotSpot 虚拟机发布。
HotSpot 虚拟机发布时是作为JDK 1.2的附加程序提供的,后来它成为了JDK1.3及之后所有版本的Sun JDK 的默认虚拟机
Java 1.3
2000年5月8日,JDK 1.3发布,工程代号为 Kestrel(红隼)
一些类库上(如数学运算和新的 Timer API等)
JNDI服务从JDK 1.3开始被作为一项平台级服务提供(以前JNDI仅仅是一项扩展)
使用CORBA IIOP来实现RMI的通信协议等
对 Java 2D做了很多改进,提供了大量新的 Java 2D API,并且新添加了 JavaSound类库
从JDK1.3开始, Sun 公司维持了一个习惯:
大约每隔两年发布一个JDK的主版本,以动物名作为工程代号
期间发布的各个修正版本则以昆虫名作为工程代号
Java 1.4
2002年2月13日, JDK1.4发布,工程代号为Merlin (隼)
XML处理
Java打印服务
Logging API
Java Web Start
JDBC 3.0 API
断言
Preferences API
链式异常处理
支持IPV6
支持正则表达式
引入Imgae I/O API
Java 1.5
2004年9月30日,JDK1.5发布,工程代号 Tiger(老虎)
自动装箱、泛型、动态注解、枚举、可变长参数以及遍历循环(foreach 循环)等语法特性。
在虚拟机和API层面上,这个版本改进了 Java的内存模型(Java Memory Model, JMM),提供了 java.util.concurrent 并发包等
JDK 1.5是官方声明可以支持Windows 9x平台的最后一个JDK版本
2006年11月13日,JavaOne大会上,Sun 公司宣布最终会将Java开源
Java 1.6
2006年12月11日,JDK1.6发布,工程代号 Mustang(野马)
提供动态语言支持(通过内置 Mozilla Java Rhino引擎实现)。
提供编译API 和微型HTTP服务器API等。
对Java 虚拟机内部做了大量改进,包括锁与同步、垃收集以及类加载等方面的算> 法都有相当多的改动。
JDBC 4.0AP
可插拔注解
增加对Native PKI(Public Key Infrastructure), Java GSS(Generic Security Service),Kerberos和LDAP(Lightweight Directory Access Protocol)支持。
继承Web Services
Sun公司终结了从JDK 1.2开始已经有8年历史的J2EE、J2SE 和 J2ME的命名方式,启用Java SE 6、 Java EE 6和Java ME 6的命名方式
2009年4月20日, Orcle公司宣布正式收购Sun 公司,此时Orcle已获取三大商业虚拟机中的其中两个(JRockit、 HotSpot)
Java 1.7
2011年7月28日, Oracle 公司发布 Java SE 1.7,工程代号为Dophin (海豚)
提供新的G1收集器(G1 在发布时依然处于 Experimental状态,直至2012年4月的 Update 4 中才正式“转正”)
加强对非 Java语言的调用支持(JSR-292,这项特性到目前为止依然没有完全实现定型)
switch语句块中允许以字符串作为分支条件
钻石型语法(在创建泛型对象时应用类型推断)
支持动态语言
支持try-with-resources(在一个语句块中捕获多种异常)
引入Java NIO.2开发包
数值类型可以用二进制字符串表示,并且可以在字符串表示中添加下划线
null值的自动处理
Java 8
2014年3月18日, Oracle 公司发布Java 8,维护时间截止到2019年1月
详细参考:Java 8 新特性 | 菜鸟教程
Java 9
2017年9月22日, Java 9正式发布,维护时间截止到2018年3月
详细参考:Java 9 新特性 | 菜鸟教程
2019年开始JDK8后续的版本就开始收费了,针对企业级用户,存在一些openjdk可以使用
Java 10
2018年03月20日,Oracle 公司发布Java 10,维护时间截止到2018年9月
待补充
Java 11
2018年09月25日,Oracle 公司发布Java 11,作为一个LTS版本
待补充
Java 12
2019年03月19日,Oracle 公司发布Java 12,作为"功能性版本"
待补充
Java 13
2019年09月17日,Oracle 公司发布Java 13
待补充
Java 14
2020年03月17日,Oracle 公司发布Java 14
待补充
Java 15
2020年09月15日,Oracle 公司发布Java 15
待补充
Java 16
2021年03月16日,Oracle 公司发布Java 16
待补充
Java 17
2021年09月14日,Oracle 公司发布Java 17
待补充
Java 18
2022年03月22日,Oracle 公司发布Java 18
待补充