图书前言

前言

在程序设计的教学中,选择一种适合的语言是十分重要的。比较多种程序设计语言,笔者认为Java具有如下突出的优点。

其一,Java是面向对象的语言,与现代面向对象的设计与分析的软件工程相一致,也是当前的主流程序设计语言之一。

其二,简单易学。其中的数据类型、数据运算、程序控制结构等基本概念对于任何语言都是一致的;而其语法比C++等语言更简单,更容易掌握。

其三,Java语言本身就支持一些高级特性,如自动垃圾回收、异常处理、多线程、并行计算等,这些特性使Java成为极优秀的语言之一。

此外,Java具有广泛的用途。Java具有跨平台的特点,在各种平台上都有应用,它还可以有效地进行数据库、多媒体及网络的程序设计。不仅如此,Java还可以编写桌面应用、手机应用及网络应用。

综上所述,Java是特别适合于程序设计学习的基础语言。

对于学习者而言,选择一本好的教材至关重要。笔者基于多年程序设计语言的教学经验,结合个人的软件开发实践,力图使本书突出以下特色。

(1)对Java语言的基础知识,包括数据类型、流程控制、类的封装与继承、多态、虚方法调用、传值调用等进行系统讲解,让学习者知其然,并知其所以然。

(2)对Java类库中的基本类,包括Math、字符串、集合,进行详细讲解,以利于学习者打下牢固的基础。

(3)对Java中的基本应用,包括I/O、文本界面、图形界面等,精选大量典型而实用的例子,力图使学习者触类旁通、举一反三。

(4)对一些高级应用,如数据库编程、网络编程、多媒体编程、多线程、并行计算等内容,介绍了其概念、原理,以利于学习者能了解Java的实际应用及最新发展。

(5)在讲解语言的同时,介绍它所采用的面向对象技术的基础理论、主要原则和思维方法,以及在编程中写好代码的一些技巧与经验。

(6)在讲解、举例时充分考虑到各个层次的需要,力求语言简洁,内容循序渐进。同时,考虑到部分读者的需要,本书提供了较多的习题。

本书在内容安排上,大致可以分为三部分:第一部分介绍了Java语言基础,包括数据、控制结构、数组、类、包、对象、接口等;第二部分介绍了Java深入知识,包括参数传递、虚方法调用、异常处理、工具类与算法;第三部分是Java的应用,包括线程、并行编程、流式文件、图形用户界面,以及Java在网络、多媒体、数据库等方面的应用。

本书历经了第1版、第1版修订本、第2版和本次的第3版,书中融合了多年的教学经验,同时也针对广大读者的反馈进行了改进。另外,本书对Java语言的新特性进行了介绍,如Java 5中的泛型、增强的for语句、装箱等,Java 7中增加的switch与字符串、自动尝试关闭资源、新字面常量、多重异常捕获,Java 8中增加的Lambda表达式、流式处理、函数式接口等,同时也将Java 9以上版本增加的语法特性融入到各章的示例中。

本书第3版在保持第2版整体框架的同时,在一些细节上进行了较多的修改。

(1)增加了一些新的知识:实用的线程工具类、NIO、异步、HttpClient、Record类型等。

(2)对涉及图形用户界面的程序,统一改成Swing实现,而不再使用较老的AWT组件、Applet等技术,也不再使用独立于Java SE的Java FX界面。

(3)在文字叙述上,使用更通行的名词术语,例题的讲解更详细,书中的代码重新进行了整理,使用更有意义的命名和更通行的代码风格。

(4)对新的工具(如IDEA、Eclipse、NetBeans等)进行了介绍,对实践中用得较多的技术(如JUnit、正则表达式、数据库等)也进行了更详细的介绍。

相信第3版在全面性、先进性、实用性方面比前几个版本做得更好一些。

本书的内容和组织方式适合作为高等学校各专业“计算机程序设计”课程的教材,或者作为计算机技术的培训教材,也可以作为Java认证考试(OCP/JP,即原来的SCJP)用书。

作者在中国大学MOOC平台上开设的慕课“Java程序设计”是国家精品在线开放课程,本书也可以作为慕课教材。慕课的网址是:https://www.icourse163.org/course/PKU-1001941004,可以扫描下面的二维码参加课程。

读者可以从作者的个人网站(http://www.dstang.com)下载与本书配套的源程序。如果需要电子教案也可直接与作者联系(dstang2000@263.net)。

书中存在的缺点和不足,恳请读者批评指正。

唐大仕2021年7月于北京大学