1.7 Java路线图
由于一切都尚在进行之中,因此很难将目前有什么、将来可能有什么,以及哪些已经存在一段时间等诸多情况呈现于笔端。以下几节将勾勒一幅路线图,从而使你对Java的过去、现在和将来有所认识。
1.7.1 过去:Java 1.0到Java 1.6
Java 1.0为Java开发提供了基本框架,即语言本身以及允许编写applet和简单应用的包。尽管1.0已经正式废弃,但仍存在大量applet遵循其API。
Java 1.1取代了1.0,主要在以下方面有所改进:AWT包(Java最初的GUI功能)、一个新的事件模式、诸如反射和内部类等新的语言功能,以及许多其他关键特性。Java 1.1是Netscape Navigator和Microsoft Internet Explorer浏览器的大多数版本多年来都支持的版本。出于一些政治上的原因,浏览器领域可能还会在这种状态下停顿较长一段时间;Java 1.1这个版本仍然会被认为是applet的一种基础,尽管它会随着Microsoft在其平台中放弃对Java的支持而消失。
Java 1.2(即Sun所称的“Java 2”)是一个于1998年12月发布的主要版本。它提供了许多改进,并增加了大量内容,主要是将API集捆绑至标准发布版来实现的。所增加内容中,声名最为显赫的当属将Swing GUI包作为核心API,并且加入了全新的成熟2D绘制API。Swing是Java的高级用户界面工具包,其功能远远超出了原来的AWT(Swing、AWT和其他一些包有时被称为JFC,即Java基类(JavaFoundation Class))。Java 1.2还为Java增加了一个适当的集合(Collection)API。
Java 1.3于2000年初发布,其中仅增加了少许特性,但是将重点在性能上。利用1.3版本,在许多平台上,Java的速度都得到了显著提高,而且也修补了Swing的许多bug。在这一阶段,诸如Servlet和Enterprise JavaBeans(EJB)等Java企业API也日渐成熟。
Java 1.4于2002年发布,加入了一个重要的新的API集,以及很多人们期待已久的特性。这包括:语言断言、正则表达式、首选项和日志API、一个面向高容量应用的新的I/O系统、对XML的标准支持、AWT和Swing中的基本改进,以及针对Web应用的相当成熟的Java Servlets API。
Java 5发布于2004年。这是一次重要的发布,引入了很多期待已久的语言语法扩展,包括范型、类型安全、枚举、增强的for循环、可变的参数列表、静态导入、基本类型的自动装箱和拆箱,以及关于类的高级元数据。一个新的并发API提供了强大的线程功能,还有类似于C中所添加的那些用于格式化打印和解析的API。RMI也进行了彻底的修改,以不再需要编辑stub和skeleton。标准XML API中也有重要的增加。
Java 6于2006年发布,是一个相对较小的发布,没有给Java语言添加什么新的语法特性,但是,绑定了一些新的API,例如用于XML和Web Service的那些API。
1.7.2 如今:Java 7
本书包含了Java 7这一最新版本中的所有最新和最好的改进。这个发布版本添加了少许的语言功能的增强,例如,改进了异常处理和资源管理。它还包含了一些重要的API更新,例如,一个完整的新的文件系统API,还添加了很多其他的API。本书的这一版本是Java 5之后的第一次改版,因此,彻底地进行了修改,包含了Java 6和Java 7版本中进行的所有修改。
以下对当前核心Java API的最为重要的特性提供一个概述:
JDBC(Java Database Connectivity,Java数据库互连)
为了与数据库交互的一个通用功能(最早于Java 1.1中引入)。
RMI(Remote Method Invocation,远程方法调用)。
Java的分布式对象系统。RMI允许调用某个服务器中的对象上的方法,而该服务器可能运行于网络上的另一位置(最早于Java 1.1中引入)。
Java Security(Java安全性)
用于对访问系统资源加以控制的功能,并结合有一个统一的加密接口。Java安全性是签名类的基础,对此先前曾讨论过。
JFC(Java Foundation Classes,Java基类)
包含大量新特性的完备集(catch-all),其中包括Swing用户界面组件;“可插拔感观”(pluggable look-and-feel),这表示用户界面能够自行调整以适应所用平台的观感;拖曳功能;以及可访问性(这意味着集成特定软件和硬件的能力以为残障人士服务)。
Java 2D
JFC的一部分,支持高质量图形、字体管理和打印。
Internationalization(国际化)
编写程序从而使之能够与用户希望使用的语言相适应的能力,程序可以自动地以适当的语言显示文本(最早于Java 1.1中引入)
JNDI(Java Naming and Directory Interface,Java命名与目录接口)
查找资源的一个通用服务。JNDI统一了对诸如LDAP、Novell的NDS以及其他目录服务的访问。
以下“标准扩展”API并非核心Java发布版本中的一部分,可以单独下载。
JavaMail
编写E-mail软件的一个统一API。
Java 3D
此功能可以用于开发带有3D图形的应用。
Java Media
另一个完备集,其中包括Java 2D、Java 3D和Java媒体框架(Java MediaFramework,这是一种用于调整不同类型媒体显示的框架)、Java Speech(用于语音识别和合成)、Java Sound(高质量音频)、Java TV(用于交互式电视和同类应用)以及其他。
Java Servlets
允许用Java编写服务器端Web应用的功能。
Java Cryptography
密码算法的实际实现(出于法律的原因,这个包与Java Security是分离的)。
JavaHelp
编写帮助系统并将其结合到Java程序中的功能。
Enterprise JavaBeans
用于构建分布式服务器端应用的体系结构。
Jini
一个非常有趣的完备集,其设计目标是支持大范围分布式计算,包括查找各种设备并与之交互,这些设备从软件工具到硬件,甚至家用电器。
XML/XSL
一个工具,用来创建和操作XML文档、验证文档、将其与Java对象相互映射,并使用样式表传输XML。
Web services
创建并部署基于Java的SOAP Web Services的工具。
在本书中,我们将尽可能使你了解到更多的特性;对我们而言,遗憾的是(对于Java软件开发人员倒是一件幸事),Java环境变得涵盖面如此之广,以至于我们无法仅在一本书中做到面面俱到。
1.7.3 将来
Java的变化已经不那么频繁了,因为多年来Java已经日渐成熟,但是,Java仍然是应用开发的最流行的平台之一。在Web Service、Web应用程序框架和XML工具等领域,尤其是这样。尽管Java还没有像预想的那样统治移动平台,但是,Java语言及其核心API已经用来为Google的Android移动OS编程,该系统在全世界数以百万计的设备上使用。在Microsoft阵营中,由Java衍生而来的C#语言占据了大多数的.NET开发,并且将核心Java语法和模式带到了那些平台中。
可能Java如今的改变中,最激动人心的领域在于这样的一种趋势:朝着轻量级、简单的商用框架发展,并且Java平台集成了动态语言以支持Web页面脚本编程和扩展。这将是非常有趣的工作。
1.7.4 可用性
对于Java开发环境和运行时系统,你有诸多选择。Oracle的Java软件开发包可用于Mac OS X、Windows和Linux。
还有很多流行的Java集成开发环境(Integrated Development Environments,IDE)。本书中,我们将介绍两种,分别是IBM的Eclipse和Oracle的NetBeans IDE。这些一体化的开发环境允许我们轻松地使用高级工具来编写、测试和打包软件。尽管Eclipse毫无疑问是最流行的,并且是开源的,但本书作者喜欢的IDE是JetBrains的Intellij IDEA,它现在也有一个免费的社区版。
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。