Java 是世界上第一个 100% 不依赖操作系统平台、面向对象编程语言。在从发表、发展、成熟、壮大的短短 10 多年里, Java 如同一颗冉冉升起的耀眼巨星,迅速超越 C C++ ,独占头鳌,成为软件开发最广泛应用的编程语言。恭贺你选择了 Java ,感谢你翻开了这本书,她可以作为启迪你 Java 编程概念的向导、打开通往 Java 技术宝库的“金钥匙”。这无疑会使你与 Java 结下不解之缘,成为掌握和拥有 Java 技术大家庭中的一员。
Java 语言包括广泛的应用技术和应用领域。从应用技术或软件包来讲,它包括 Java 标准版本软件包 Java SE Java 企业版本软件包 Java EE ,以及 Java 微型版本 Java ME 。从软件开发及应用领域角度,它包括桌面应用编程、 Web 客户端编程、服务器编程、移动设备,如手机编程、以及机器人编程等。虽然本书专门介绍 Java 标准版本的编程概念和技术,但她是学习所有其它 Java 技术的基础。学好了这本书中介绍和讨论的 Java 编程概念和技术,掌握其它 Java 技术应该不难了。
那么怎样写好《 Java 编程艺术》这本书,使读者在和上这本书的时候,会爱不释手,有继续学下去的欲望;当学完这本书的时候,会由衷地说,这本书没有白买,它物超所值,是值得拥有的一本书呢?
首先,我必须遵循这样一个写作真谛:作者必须首先是读者。这是我多从事写作的经验之谈。我在写这本本书的时候,总是在不断设身处地问自己:在许许多多介绍 Java 编程的书中,读者为什么要买你这本书? 如果我是读者,会买她吗?回想起我在初学 Java 的时候,每遇到一个难懂的 Java 概念或编程技术时,总是会问:什么是问题所在 (What) ?为什么会这样 (Why) ?以及怎样解决它 (How) ?我在《 Java 编程艺术》这本书的写作大纲、章节安排、以及内容编排上按照这样一个 3W 作为主线,使她成为读者朋友学习 Java 编程的良师益友。
第二,作者不仅仅是读者。我必须把握读者的心理,知道读者学习中的难点。我们经常说难者不会,会者不难。为什么学会了就不难了呢?究根寻源,本来问题就不难,是没有讲清楚、没有写清楚,而是把概念和技术越说越玄、越写越深奥,如同不会画画,越描越黑。所以我写作的原则是:自己没有搞懂得概念和技术,绝不要写;否则一定会误人子弟。懂了、觉得简单了,才会把难的东西写得简单易懂,读者才会受益。
第三,没有实际应用和教学经验的概念和技术,绝不把它写进书里。我是从 1996 年,即 Java 正式发表于世的时候,开始自学 Java ,并且从事 Java 教学的。我所在的大学地处美国硅谷,是 Java 和许多计算机软、硬件技术的诞生地。创建 Java 语言的升阳微系统公司( Sun Microsystems )就离我的居所 10 几分钟的车程。我几乎每年都参加一年一度的 JavaOne 国际会议,聆听创建 Java 领军人物们的演讲、参加介绍 Java 新技术的讲座和培训、以及参观所有 Java 伙伴公司的展厅,收集有关 Java 软件开发的资料,充实自己的知识。这些经验无疑有益和帮助这本书的完成。
第四,以实例解释编程概念和难点。我认为这是学习任何编程语言的特点。我在《全 C 编程》、《微型计算机用户指南》等书以及我的教学实践中始终把握这个特点,读者朋友和学生们受益匪浅,反映有佳。世面流行的一些编程书中也列举了大量例子,但许多只是程序代码片断,或读者不能编译执行的程序。我认为这不是真正意义上的通过实例学习编程。在我的书中近 500 个实例都是完整的程序,都可以编译和执行。为了使书不那么厚,我把完整的代码都上载到清华大学出版社配套资源网址,供读者朋友免费下载。这样除可以减少书的厚度,降低售书价格外,还有其它两个好处:读者在学习书中的举例时,可以抓住重点;在深化理解和掌握消化时,可以看到程序的全貌和各个部分的关系。 `
最后,学编程关键在动手。心动不如行动,光看书是学不会 Java 的。“要想知道梨子的滋味,必须亲口尝尝”,学习编程是实践性很强的艺术。我在近 20 年的教学中,看到许多学生,上课认真听讲、专心记笔记;下课费心看书,逐字逐段抠书本,但却忽视实践环节、缺乏动手能力。为什么? - 做练习太少、上机编程序太少、分析并修改程序例子太少。这些不足在中国留学生身上尤显突出。针对这个特点,我在教学中十分强调练习、实践、分析、修改、提高、巩固这几个环节。国内出版的许多编程书籍中,往往没有练习题部分。我觉得这时十分遗憾,或美中不足的事。练习题不仅要有,而且应该涵盖章节中讨论过的所有重要编程概念和技术,引导、鼓励、督促读者勇于实践并且善于实践。
Java 编程艺术》就是在以上原则和宗旨的指导下,积累我 10 多年 Java 教学和实践经验以及近 20 年程序设计教学生涯的基础上写成的。它分为 5 个部分共计 23 章。
1 部分新手上路篇共有 5 章:第 1 章初识 Java 、第 2 章熟悉 Java 工作环境、第 3 章开始 Java 编程、第 4 章走进控制语句、以及第 5 章数据控制,引导初学者为学习 Java 编程打好基础。
2 部分深入篇包括 4 章:第 6 章走进类和对象、第 7 章继承、第 8 章多态、以及第 9 章接口,讨论面向对象编程的核心概念和技术。
3 部分更多 Java 涵盖 5 个章节的内容:第 10 章数组和字符串、第 11 章走进异常、第 12 章更多 OOP 技术、第 13 章集合类、以及第 14 章多线程,深入介绍 Java 的其它重要编程概念和技术。
4 部分由 7 章组成:第 15 GUI 组件、第 16 GUI 组件布局、第 17 章更多组件和事件处理、第 18 章更多事件处理、第 19 Applet 编程、以及第 20 章字体、颜色、图像和声音,引导读者走进 Java 多媒体编程世界。
5 部分数据流和处理共有 3 章:第 21 章文件 I/O 、第 22 章数据库编程、以及第 23 章网络编程,为读者学习 Java 提高性编程概念和技术奠定基础。
应该说我用心将这本书献给了热衷于 Java 编程的国内读者朋友。我正在编写这本书的英文版,打算将她献给热衷于 Java 编程的英文读者。 Java 无国界。让我们在 Java 的广袤天地间,为了解 java 真相、掌握 Java 技术,勇于探索和实践。“学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不揾,不亦君子乎?” 感谢清华大学出版社陈冰编辑,没有你,此书将不可能出版。同时也感谢你和销售部赖晓经理提出的宝贵建议以及在网站上登载本书有关章节所做的努力 。感谢清华大学出版社为本书的出版付出过辛劳的编辑、排版和校对人员。还必须感谢妻子张葵以及我的学生 Techen Hsiung 在校对中付出的辛劳。