丰富的Java API
从概念上来讲,计算机语言由两部分组成。一是语言本身,由关键字和语法定义;二是标准库,包含一组面向程序员的类、接口和方法。尽管现在所有的主流编程语言都提供了大量的库,但是Java定义的库由于更为丰富和多样显得非常突出。人们在最初创建Java时,它的库包括一组核心程序包,例如java.lang、java.io和java.net。随着Java不断发布新的版本,新的类和程序包也被不断加入。如今的Java已经为程序员提供了功能极其强大的库函数。
从Java创建之初,Java函数库就与其他语言的函数库有所不同,其中一个关键不同之处,在于Java库对网络的支持。在开发Java的时候,其他语言(例如C++)并没有提供(现在仍然没有提供)处理网络的标准函数。Java通过提供相应的类,使得连接和使用Internet的处理非常方便,从而有力地推动了Internet革命的进程。Java向所有的程序员开放了Internet,而不仅仅局限于精通网络编程的那部分人。java.net的功能改变了计算的形式。
Java核心库中的另外一个关键的程序包是java.awt,它支持抽象窗口工具集(Abstract Window Toolkit,AWT)。程序员可以用AWT创建可移植的、基于GUI的代码。也就是说,程序员用AWT类可以创建一个基于视窗的应用程序,并在程序中使用各种标准的GUI元素,例如滚动条、复选框和单选框等。由于AWT的存在,程序员创建的GUI应用程序可以运行在任何支持Java虚拟机的环境中。而这种层次上的GUI移植性,在Java之前是从来没有过的。
在Java中加入AWT彻底改变了程序员思考应用程序环境的方式。在Java前时代,基于GUI的程序必须明确指出其执行环境。这意味着任何Windows程序需要重新编译才能够在一台Apple机上运行。Java通过一个可移植的GUI提供统一的编程环境。
后来Java:Swing也被加入Java中,这是AWT的一个轻型实现。Swing组件包含在javax.swing及其子程序包中。Swing为程序员提供了一组丰富的GUI组件。与AWT相比,它们的可移植性更高。本书将通过许多例子来演示AWT和Swing如何为程序员提供函数,使他们具有编写高效、可移植的GUI应用程序的能力。
如今,Java库已经基于最初的核心库得到了极大发展。Java的每个新版本都会提供一些新的库。新的程序包不断增加,新的功能也不断加入已有的程序包中。Java库的发展过程处于一个连续的状态,因为Java必须能够适应快速演变的计算环境。这种在短期内适应和变化的能力也是Java的精髓之一。
|