DBMNG数据库管理与应用

书籍是全世界的营养品。生活里没有书籍,就好像没有阳光;智慧里没有书籍,就好像鸟儿没有翅膀。
当前位置:首页 > MySQL > 常见问题

Java的演变历程

1.7 Java的演变历程

Java的最初发布不亚于一场革命,但是它并不标志着Java快速革新时代的结束。与其他大多数软件系统经常进行小的、增量式的改进不同,Java持续以爆炸性的步伐向前发展。在Java 1.0发布不久,Java的设计人员就已经创建了Java 1.1。Java 1.1新增的特性比您可能认为的在次要版本中修订增加的内容更重要并且更丰富。Java 1.1添加了许多新的库元素,改进了事件处理方式,并且重新配置了Java 1.0版本中库的许多特性。它还建议不再使用(放弃)最初由Java 1.0定义的一些特性。因此,Java 1.1既添加了新特性,也去掉了最初版本中的一些特性。 Java的下一个主要发布版本是Java 2,此处的“2”表示“第二代”。Java 2的创建是一个分水岭,它标志着Java“新时代”的开始。首次发布Java 2时使用的版本号是1.2,这看起来可能有些奇怪。因为1.2最初指的是Java库的内部版本号,但是之后被推广至表示整个发布版本。通过Java 2,Sun公司将Java产品重新包装成J2SE(Java 2 Platform Standard Edition,Java 2平台标准版),并且版本号也开始用于这个产品。 Java 2添加了大量新特性,例如Swing和集合框架,并且改进了Java虚拟机和各种编程工具。Java 2也建议不再使用某些特性。最重要的影响是Thread类,建议不再使用该类中的suspend()、resume()和stop()等方法。

J2SE 1.3是对Java 2原始版本的第一次重要升级。这次升级主要是更新Java的现有功能以及“限制”开发环境。一般来说,为版本1.2和1.3编写的程序的源代码是兼容的。尽管版本1.3包含的变化比以前三次重要升级更小,但这次升级仍然是十分重要的。 J2SE 1.4的发布进一步增强了Java。这个发布版本包含了一些重要的升级、改进和新增功能。例如,添加了新的关键字assert、链式异常(chained exception)以及基于通道的I/O子系统。该版本还对集合框架和联网类(networking class)进行了修改。此外,从头到尾还有大量小的改动。尽管引入了很多新特性,但版本1.4与以前的版本保持了几乎百分之百的源代码级兼容。 Java 1.4之后的下一个发布版本是J2SE 5,该版本也是革命性的。与先前的大多数Java升级不同,该版本提供了重要、但是有规律的改进,J2SE 5从根本上扩展了Java语言的应用领域、功能和范围。为了领会J2SE 5对Java修改的重要性,考虑下面列出的J2SE 5的主要新特性:

泛型

注解(annotation)

自动装箱和自动拆箱

枚举

增强的for-each风格的for循环

可变长度参数(varargs)

静态导入

格式化的I/O

并发实用工具

上述新特性不是细枝末节的改动或增量式的升级,列表中的每一项都表示对Java语言的重大弥补。某些新特性,比如泛型、增强的for-each风格的for循环以及可变长度参数,引入了新的语法元素。其他新特性,比如自动装箱和自动拆箱,改变了Java语言的语义。注解为编程增加了一个全新的维度。所有这些新增特性的影响都超出了它们的直接效果。它们极大地改变了Java本身的每一特性。 这些新增特性的重要性反映在版本号“5”的使用上。正常情况下,Java的下一个版本号应为1.5。然而,这些新增特性实在是太重要了,以至于从1.4转向1.5不足以看出变化的重要性。因此,Sun公司选择将版本号增至5,以强调一个重要事件正在发生。因此,该版本被命名为J2SE 5,同时开发人员的工具包也称为JDK 5。不过,为了保持一致性,Sun公司决定使用1.5作为内部版本号,它也指开发版本号。J2SE 5中的“5”被称为产品版本号。 Java的下一个发布版本称为Java SE 6。Sun公司再次决定改变Java平台的名称。首先,注意“2”已经被取消了。因此,平台现在被命名为Java SE,官方产品名称是“Java Platform,Standard Edition 6”。与J2SE 5中的“5”一样,Java SE 6中的“6”是产品版本号,而内部的开发版本号是1.6。 Java SE 6建立在J2SE 5的基础之上,进行了一些增量式的改进。Java SE 6没有为Java语言添加真正重要的新特性,但它确实增强了API库,添加了几个新的包,并且对运行时进行了改进。随着几次升级,在漫长的生命周期中Java SE 6还进行了几次更新。总之,Java SE 6进一步巩固了J2SE 5的发展成果。

Java SE 7

Java最新的发布版本是Java SE 7,Java开发人员工具包也随之被称为JDK 7,并且内部版本号为1.7。Java SE 7是自从Sun Microsystems被Oracle公司收购(这一过程始于2009年4月,并在2010年1月最终完成)之后第一个重要的发布版本。Java SE 7包含许多新特性,包括为Java语言增加的重要特性和API库,并且对Java运行时系统进行了升级,升级的内容包括对非Java语言的支持。不过对Java开发人员来说,他们最感兴趣的还是为语言和API增加的特性。 新增的语言特性是作为Project Coin的一部分开发的。Project Coin的目的是识别大量将被合并到JDK 7中的对Java语言的小修改。尽管这些新特性被集中描述为“小的”修改,但就它们对代码的影响而言,这些修改产生的影响却相当大。实际上,对于许多开发人员,这些修改可能是Java SE 7中最重要的新特性。下面是新增语言特性的列表:

String现在能够控制switch语句。

二进制整型字面值。

数值字面值中的下划线。

扩展的try语句,称为带资源的try(try-with-resources)语句,这种try语句支持自动资源管理(例如,当流(stream)不再需要时,现在能够自动关闭它们)。

构造泛型实例时的类型推断(借助菱形“<>”运算符)。

对异常处理进行了增强,单个catch(multi-catch)子句能够捕获两个或更多个异常,并且对重新抛出的异常提供了更好的类型检查。

对与某些方法(参数的长度可变)类型关联的编译器警告进行了改进,尽管语法没有发生变化,并且对警告具有更大的控制权。

正如您可能看到的,尽管Projection Coin特性被认为是对语言小的修改,但是它们带来的好处却是很大的。特别地,带资源的try语句将会对编写基于流的代码的方式产生深远影响。此外,使用String控制switch语句的能力是大家盼望已久的改进,在许多情况下这一改进将会简化代码。 Java SE 7为Java API库新增了一些内容。其中最重要的两个方面是对NIO框架进行了增强并且增加了Frok/Join框架。NIO(最初表示新I/O(New I/O))是在1.4版本中被添加到Java中的。然而,Java SE 7对NIO的增强从根本上扩展了它的功能。这一修改非常重要,以至于经常使用术语NIO.2。 Frok/Join框架对并行编程(parallel programming)提供了重要支持。并行编程通常是指有效使用具有多个处理器(包括多核系统)的计算机的技术。多核环境提供的优点是可以在相当大的程度上提高程序的性能。Fork/Join框架通过以下两个方面对多核编程提供支持:

简化同时执行的任务的创建和使用。

自动使用多个处理器。

所以,使用Fork/Join框架可以很容易地创建可伸缩的应用程序,它们能够自动利用执行环境中的可用处理器。当然,并不是所有的算法都可以并行执行,但是如果算法确实可以并行执行的话,执行速度就可以得到相当大的提升。 本书内容已经进行了更新以反映Java SE 7中的变化,涵盖许多新特性、更新以及新增内容。

本站文章内容,部分来自于互联网,若侵犯了您的权益,请致邮件chuanghui423#sohu.com(请将#换为@)联系,我们会尽快核实后删除。
Copyright © 2006-2023 DBMNG.COM All Rights Reserved. Powered by DEVSOARTECH            豫ICP备11002312号-2

豫公网安备 41010502002439号