简单了解Java发展历史
来源:互联网 发布:淘宝上的拍卖靠谱吗 编辑:程序博客网 时间:2024/05/16 03:08
Java 语言
- 1991年4月 Oak (Java前身), 作者:James Gosling
JDK 1.0
1995年5月23日,Java 1.0,Oak语言改名为Java,“Write Once,Run Anywhere”
1996年1月23日,JDK 1.0发布。
- Java虚拟机实现(Sun Classic VM)
- Applet
- AWT
1997年2月19日,JDK 1.1,
- JAR文件格式
- JDBC
- JavaBeans
- Java语法:如内部类(Inner Class)和反射(Reflection)
JDK 1.2
1998年12月4日,JDK 1.2,
- 面向桌面应用开发的J2SE(Java 2 Platform, Standard Edition)
- 面向企业级开发的J2EE(Java 2 Platform, Enterprise Edition)
- 面向手机等移动终端开发的J2ME(Java 2 Platform, Micro Edition)。
- EJB
- Java IDL
- Swing
- 加了strictfp关键字
- Collections集合类
- JIT(Just In Time)
JDK 1.2中曾并存过3个虚拟机,Classic VM、HotSpot VM和Exact VM,其中Exact VM只在Solaris平台出现过;后面两个虚拟机都是内置JIT编译器的,而之前版本所带的Classic VM只能以外挂的形式使用JIT编译器)。
1999年3月,JDK 1.2.1
1999年7月,JDK 1.2.2
1999年4月27日,HotSpot虚拟机发布,
HotSpot最初由一家名为“Longview Technologies”的小公司开发,因为HotSpot的优异表现,这家公司在1997年被Sun公司收购了。HotSpot虚拟机发布时是作为JDK 1.2的附加程序提供的,后来它成为了JDK 1.3及之后所有版本的Sun JDK的默认虚拟机。
JDK 1.3
2000年5月8日,JDK 1.3,
- 数学运算
- 新的Timer API
- JNDI服务从JDK 1.3开始被作为一项平台级服务提供(以前JNDI仅仅是一项扩展)
- 使用CORBA IIOP实现RMI的通信协议
- Java 2D API
JavaSound
2001年5月17日,JDK 1.3.1,
JDK 1.4
2002年2月13日,JDK 1.4发布,JDK 1.4是Java真正走向成熟的一个版本,
- 正则表达式
- 异常链
- 日志类
- XML解析器和XSLT转换器
2002年9月16日,JDK 1.4.1
2003年6月26日,JDK 1.4.2
JDK 1.5
- 2004年9月30日,JDK 1.5发布
- 泛型
- 自动装箱
- 动态注解
- 枚举
- 可变长参数
- 遍历循环(foreach循环)
- 改进了Java的内存模型(Java Memory Model,JMM)
- java.util.concurrent
JDK 1.6
2006年12月11日,JDK 1.6发布,
- 动态语言支持(通过内置Mozilla Java Rhino引擎实现)
- 编译API
- 微型HTTP服务器API
- JAX-WS2.0和JAXB2.0
- JDBC4.0
- 锁与同步
- 垃圾收集
类加载算法改进
从JDK 1.6开始,Sun终结了从JDK 1.2开始已经有8年历史的J2EE、J2SE、J2ME的命名方式,启用Java SE 6、Java EE 6、Java ME 6的命名方式
2006年11月13日,JavaOne大会上,Sun公司宣布最终会将Java开源,并在随后的一年多时间内,陆续将JDK的各个部分在GPL v2(GNU General Public License v2)协议下公开了源码,并建立了OpenJDK组织对这些源码进行独立管理。除了极少量的产权代码(Encumbered Code,这部分代码大多是Sun本身也无权限进行开源处理的)外,OpenJDK几乎包括了Sun JDK的全部代码,OpenJDK的质量主管曾经表示,在JDK 1.7中,Sun JDK和OpenJDK除了代码文件头的版权注释之外,代码基本上完全一样,所以OpenJDK 7与Sun JDK 1.7本质上就是同一套代码库开发的产品。
JDK 1.6发布以后,由于代码复杂性的增加、JDK开源、开发JavaFX、经济危机及Sun收购案等原因,Sun在JDK发展以外的事情上耗费了很多资源,JDK的更新没有再维持两年发布一个主版本的发展速度。JDK 1.6到目前为止一共发布了37个Update版本,最新的版本为Java SE 6 Update 37,于2012年10月16日发布。
JDK 1.7
2009年2月19日,JDK 1.7
- G1收集器
- 加强对非Java语言的调用支持(JSR-292)
- 升级类加载架构
工程代号为Dolphin(海豚)的JDK 1.7完成了其第一个里程碑版本。根据JDK 1.7的功能规划,一共设置了10个里程碑。最后一个里程碑版本原计划于2010年9月9日结束,但由于各种原因,JDK 1.7最终无法按计划完成。
从JDK 1.7最开始的功能规划来看,它本应是一个包含许多重要改进的JDK版本,其中的Lambda项目(Lambda表达式、函数式编程)、Jigsaw项目(虚拟机模块化支持)、动态语言支持、GarbageFirst收集器和Coin项目(语言细节进化)等子项目对于Java业界都会产生深远的影响。在JDK 1.7开发期间,Sun公司由于相继在技术竞争和商业竞争中都陷入泥潭,公司的股票市值跌至仅有高峰时期的3%,已无力推动JDK 1.7的研发工作按正常计划进行。为了尽快结束JDK 1.7长期“跳票”的问题,Oracle公司收购Sun公司后不久便宣布将实行“B计划”,大幅裁剪了JDK 1.7预定目标,以便保证JDK 1.7的正式版能够于2011年7月28日准时发布。“B计划”把不能按时完成的Lambda项目、Jigsaw项目和Coin项目的部分改进延迟到JDK 1.8之中。最终,JDK 1.7的主要改进包括:提供新的G1收集器(G1在发布时依然处于Experimental状态,直至2012年4月的Update 4中才正式“转正”)、加强对非Java语言的调用支持(JSR-292,这项特性到目前为止依然没有完全实现定型)、升级类加载架构等。
到目前为止,JDK 1.7已经发布了9个Update版本,最新的Java SE 7 Update 9于2012年10月16日发布。从Java SE 7 Update 4起,Oracle开始支持Mac OS X操作系统,并在Update 6中达到完全支持的程度,同时,在Update 6中还对ARM指令集架构提供了支持。至此,官方提供的JDK可以运行于Windows(不含Windows 9x)、Linux、Solaris和Mac OS平台上,支持ARM、x86、x64和Sparc指令集架构类型。
2009年4月20日,Oracle公司收购Sun公司
Oracle公司宣布正式以74亿美元的价格收购Sun公司,Java商标从此正式归Oracle所有(Java语言本身并不属于哪间公司所有,它由JCP组织进行管理,尽管JCP主要是由Sun公司或者说Oracle公司所领导的)。由于此前Oracle公司已经收购了另外一家大型的中间件企业BEA公司,在完成对Sun公司的收购之后,Oracle公司分别从BEA和Sun中取得了目前三大商业虚拟机的其中两个:JRockit和HotSpot,Oracle公司宣布在未来1~2年的时间内,将把这两个优秀的虚拟机互相取长补短,最终合二为一。可以预见在不久的将来,Java虚拟机技术将会产生相当巨大的变化。
2011年7月28日,Oracle公司发布Java SE 1.7
JDK 1.8
- 2014年3月18日,Oracle公司发表Java SE 1.8
- Lambda 表达式
JAVA 9
- 2017年9月21日,Java 9
- 新模块系统
- 支持HTTP/2.0
- 改进的Javadoc
- Stream改进
- 使用新的工厂方法更容易地初始化Collections
- 接口中的私有方法
- 语言和语法的改进
- 增强处理API
- Java REPL = Jshell
- 简单了解Java发展历史
- JAVA发展历史
- java发展历史
- java历史发展
- Java发展历史
- Java发展历史
- Java的发展历史
- Java发展历史
- Java发展历史
- Java发展历史
- JAVA发展历史
- 知今必先通古 一起来了解网络的发展历史
- 深度了解RSS历史及发展历程
- JAVA语言的发展历史
- 嘚吧嘚java的发展历史
- Java的历史发展进程
- Java虚拟机的发展历史
- java的发展历史简介
- OpenWrt源码分析之编译系统
- PHP语言开发
- java视频教程免费下载
- 汉字编码与编程相关问题总结:ASCII、机内码、区位码、国标码、Unicode码他们之间是如何转换的
- Java读取txt文件
- 简单了解Java发展历史
- 懒加载
- (M)Dynamic Programming:338. Counting Bits
- Spring接口
- Hive:KeeperErrorCode = InvalidACL for /hive/cluster/delegationMETASTORE/keys
- 常见算法基础题思路简析(四)-二分搜索篇
- newoj 21496: 开心的金明
- Java后台框架篇--Struct2之使用Ajax调用Action方法并返回值
- TCP/IP三次我手四次挥手过程与对应状态转移图