本书主要介绍由Sun微系统公司创建的Java编程语言。本书的读者对象是不同专业知识水平的所有Java开发人员,以及那些希望寻找有趣的和有用的API或项目创意的开发人员。从最初发布以来,Java已经经过了漫长发展。当我于1996年第一次接触Java时,当时的版本是1.0,并且只有少数人知道Java。当时几乎没有任何有经验的Java开发人员,且只有非常少的代码库,并且没有企业服务器。当时看来,它只是一种不成熟的语言,但是具有远大的前程。其实这些都是次要的,JVM的平台无关性功能才是Java不断成长的关键。目前,经过10年的发展,Java已经成为无所不在的成熟技术。核心API自身包含大量主题领域中的三千多个类。世界500强公司现在都围绕Java来构建整个公司计算策略,数以百万计的网站都在运行servlet和客户端的applet。 但许多开发人员认为这就是使用该语言可以做的所有工作,我对此感到非常惊讶。除了核心内容外,Java还有许多免费的财富,即开放源代码的库。本书就是为了介绍这些库,以及介绍一些Java可以实现的有趣的和有用的内容而编写的。而不是为了编写一本Java编程参考书籍—— 已有许多这样的优秀书籍可帮助人们学习编写Java代码。相反,我希望读者可以通过发现使用Java可以完成许多有趣的事来发现乐趣,而不是按部就班地学习。本书主要为对Java有一定了解(从基本了解到中等程度的了解)以及正在寻找改进其代码方法的程序员而编写。 本书中有许多示例代码和各种API的“Hello World”程序。其中的一些是介绍性的示例,而其他的一些示例则较为高级。书中有时会给出一些代码提示,有时则提出关于新项目的想法,如果某个人曾经试着实现这些想法,则这些项目就可能成为成功的开放源代码项目!如果你实现了任何有关这些项目的一个想法,那么我鼓励你加入本书的网站,和其他读者一同协作来完成开发以避免犯同样的错误。开发人员最应该做的事情是,协同工作并和其他人共享工作成果。 0.1 本书的结构 本书分为8章,每一章介绍了Java的特定领域。下面给出了每一章的简短描述。 第1章 在第1章中,我们讨论了一些核心API特性—— 一些存在较长时间但却很少有人知道的特性,而其他一些特性则是Java 5的新特性。我们对新的for循环、枚举、泛型、匿名类和断言展开了讨论。 第2章 在第2章中,我们讨论了字符串处理技术。首先介绍正则表达式,随后讨论随机文本、数组、二进制字符串以及消息格式化。Regex是功能非常强大的工具,可用来搜索、拆分和替换文本。从Java 1.4开始出现该工具,但许多Java程序员新手仍然不熟悉该工具。正则表达式是分析复杂文档的好起点。 第3章 在本章中,我们处理XML和HTML文档以及其他类型的结构化文本。我们介绍了分析器生成器并且给出了一些使用该工具的示例代码。 第4章 第4章介绍了语义网(Semantic Web),这是下一代的网络,我们将从概念上而不是用包含文本的文档实现事物的真正关联。我们介绍了一些使用RDF和RSS的API。 第5章 本章介绍了Java中的科学和数学应用程序。我们链接了大量开放源代码的项目,这些项目使用了不同方面的科学和数学知识。 第6章 本章中讨论了能简化图形应用程序开发及方便添加新特性的API。 第7章 本章处理声音和音乐API,其中还介绍了高级的线程同步。 第8章 本书的最后一章介绍了其他开放源代码的项目,并且讨论了有关创建自己的项目或创建集成前面章节中代码的项目的想法。 0.2 本书的网站 Java非常有趣,我们在本书中介绍了一些优秀的项目,也介绍了一些可用于你自己的项目的有用工具和技术。为了最有效地发挥Java的作用,你需要在某些情况下利用开放源代码的项目,这可以在本书的配套网站中找到。该网站提供了正文、勘误表和代码示例中提及的项目的链接。此外,该网站中还提供了方便读者讨论本书内容及组织新项目的论坛。我希望能以此鼓励你学习Java核心API以外的内容并继续更深层次的学习。