Java是时下非常流行的一种编程语言。不过多数人并不知道的是,Java最初名为Oak(橡树),得名于Java创始人James Gosling办公室外的一棵橡树。其最初的设计目标是作为家用电器等小型系统的程序语言,主要应用于电视机、电话、闹钟、烤面包机等家用电器的控制和通信。但是由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展,Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
Java语言在发展的过程中,经历了多次的演变,Java标准库中也不断新增了大量的Package(包)和Class(类)。那么在其发展过程中,到底经历了哪些改变呢?下面是笔者根据维基百科的java version history以及其他网络信息整理出来的java版本发展历史。
JDK Alpha and Beta(1995)
在Java语言诞生初期,公开发行的Alpha和Beta版本的JDK拥有非常不固定的API(Application Programming interface)和ABI(Application binary interface) 。当时,Sun对外提供的Java Web浏览器被命名为WebRunner(后改名为HotJava)。
JDK 1.0(1996年01月23日)
代号Oak(橡树),是Java的初始发行版本。JDK 1.0.2是Java的第一个稳定版本,因此它也被叫做Java 1。
备注:在JDK 1.0.1版本中,你可以一起使用private和protected修饰符来创建另一种形式的保护,它只允许该类的子类访问对应的方法或变量。不过,在JDK 1.0.2版本中,这种创建方式又被移除了。
JDK 1.1 (1997年02月19日)
主要更新内容包含如下:
对AWT(java.awt)事件模型进行大范围的改进。
新增内部类。
添加JavaBean。
添加JDBC。
添加RMI(Java remote method’s invocation/Java远程方法调用)。
添加只支持内省(Introspection),但不允许在运行时改动的Java反射机制。
J2SE 1.2 (1998年12月04日)
代号Playground(运动场)。该版本以及一直到J2SE 5.0为止的后续版本被回顾性地称作Java 2。此外,版本名称「J2SE」也取代了「JDK」,用来和以J2SE为基础的J2EE、J2ME进行区分。因为,从该版本开始,JDK被细分为3个不同的平台版本:J2SE(Java 2 Platform,Standard Edition/标准版)、J2EE(Java 2 Platform,Enterprise Edition/企业版)、J2ME(Java 2 Platform,Micro Edition/微型版、移动版)。
该版本是Java平台上意义非常重大的一次更新,Java平台增至59个包,共1520个类,是以前版本的3倍大小。其主要更新内容如下:
新增关键字strictfp(意即strict float point)。
核心类中集成Swing图形API。
Sun公司的JVM首次采用JIT(just-in-time)编译器。
添加Java插件。
添加可与CORBA协同交互的Java IDL。
添加Collections集合框架体系。
J2SE 1.3 (2000年05月08日)
代号Kestrel(茶隼,红隼),最值得注意的更新内容如下:
内置HotSpot JVM。
改进RMI(Java remote method’s invocation)对CORBA的兼容性。
添加JavaSound API(javax.sound.midi和javax.sound.sampled),提供对语音处理的支持。该平台以前的版本只有有限的音频支持,只能对音频片段进行基本播放。 在此新版本中,Java 2 平台定义了一系列标准类和接口,用于低级音频支持。
JNDI(Java Naming and Directory Interface/Java命名和目录接口)已经进入核心库(以前只能通过扩展方式使用)。
添加JPDA(Java Platform Debugger Architecture/Java平台调试器体系),为调试Java代码提供了统一的API。
新增复合代理类(Synthetic proxy classes)
J2SE 1.4 (2002年02月13日)
代号Merlin(灰背隼),这是Java平台在JCP(Java Community Process)下基于JSR 59规范开发的第一个版本。主要更新内容如下:
新增assert关键字。
新增模仿Perl正则表达式的Java正则表达式。
新增Exception Chaining(异常链)机制,允许一个异常封装最初的低级异常。
添加对网络协议IPv6的支持。
新增nio(java.nio),意即非阻塞式的I/O(non-blocking I/O)。由于nio是不同于以往I/O的一种新的API,因此也被称作New I/O。
新增日志API(java.util.logging)。
新增图像I/O API,用于支持类似于JPEG、PNG等格式的图像的读写操作。
集成XML解析器和XSLT处理器。
集成安全加密等扩展。
内置Java Web Start软件,使你可以方便地从Web下载和运行Java应用程序。
新增配置参数API(java.util.prefs),它允许应用程序存储并获取用户和系统首选项和配置数据。
J2SE 5.0 (2004年09月29日)
代号Tiger(老虎),由于J2SE 5.0版本的更新内容较多,并且部分内容应该详细距离描述,因此开辟一篇独立的文章来介绍J2SE 5.0的新特性及更新内容。
Java SE 6 (2006年12月11日)
代号Mustang(野马),由于Java SE 6版本的更新内容较多,并且部分内容应该详细距离描述,因此开辟一篇独立的文章来介绍Java SE 6的新特性及更新内容。
Java SE 7 (2011年07月28日)
代号Dolphin(海豚),由于Java SE 7版本的更新内容较多,并且部分内容应该详细距离描述,因此开辟一篇独立的文章来介绍Java SE 7的新特性及更新内容。
对于Java各个版本的发行日期,在不同的参考网站上答案也不尽相同,本文参考了Oracle官方网站的文章《J2SE Code Names》,并以其中的内容作为Java各个版本发行日期的编写依据。
维基百科:https://en.wikipedia.org/wiki/Java_version_history
...
未经允许请勿转载:程序喵 » 【Java】版本历史及更新内容详解