您的浏览器过于古老 & 陈旧。为了更好的访问体验, 请 升级你的浏览器
Ready 发布于2013年01月19日 07:06

原创 Java版本历史及更新内容详解

3037 次浏览 读完需要≈ 12 分钟

内容目录

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.midijavax.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各个版本发行日期的编写依据。

  • CodePlayer技术交流群1
  • CodePlayer技术交流群2

0 条评论

撰写评论