前言



在2022年2月TIOBE公布的编程语言排行榜上,Java语言仍然保持位列三甲的成绩。排名在一定程度上说明Java在行业中得到了广泛应用,使用Java技术进行软件开发的人员较多。要想成为Java技术类的开发人员,不仅需要有扎实的Java语言功底,还要学习掌握软件设计与开发技术。
本书既阐述软件开发技术,又培养工程实践能力。以IT企业对开发人员的技术能力要求为基础,以工程能力培养为目标,梳理了软件工程对计算机语言要求的知识点,并形成相应知识单元;按照工程需求顺序进行课程内容组织,便于学习和掌握;提供一定量的案例,注重实践能力的培养。
全书共分12章,章节安排以工程应用为主线展开。第1章为Java语言概述;第2章为Java语法基础;第3章为面向对象编程;第4章为数组;第5章为高级类特性;第6章为泛型与集合框架;第7章为异常;第8章为流;第9章为JDBC访问数据库;第10章为GUI编程;第11章为线程;第12章为网络编程。
本书在第1版的基础上进行章节合并及内容调整,形成第2版。与第1版相比的变化在于: (1)考虑到泛型主要应用在集合框架中,将第1版的泛型与集合框架合并为一章,在内容的组织上先介绍泛型,再讲集合,这样在集合讲解中就可以实现对泛型的应用,调整后对相应内容进行了重新组织和撰写。(2)GUI编程在Java软件开发中的使用不是太多,在不影响知识讲解连贯性的前提下,从第1版的第6章调整至第10章,并且为了更符合Java软件开发的实际情况,重点描述了Swing组件,对相关内容进行重新组织和撰写。(3)针对第1章Java语言概述,将“Java程序的开发过程”进行细化,更易于初学者实现对Java语言的入门。(4)针对第3章面向对象编程,按照面向对象的三大基本特征重新组织和梳理了章节内容,使知识点更具连贯性和完备性,同时扩展了常用类这一节内容。(5)针对第5章高级类特性,按照Java 8版本的新特性重新撰写了接口内容,并且新增了Java 8 Lambda表达式和注解的相关内容。(6)针对第9章JDBC访问数据库,新增了JDBC高级特征应用,并对本章部分现有内容进行了调整和完善。(7)对本书的综合案例进行了大幅调整,减少了GUI内容的使用,降低了综合案例的复杂度,更易于读者接受和掌握。
本书具有以下特点。
(1) 遵照教指委最新的计算机科学与技术和软件工程专业及相关专业的培养目标和方案合理安排Java核心技术的知识体系,结合Java技术方向的先行课程和后续课程组织相关知识点与内容。
(2) 注重理论和实践结合,教材融入面向对象软件开发过程和工程实践背景的项目案例,使得学生在掌握理论知识的同时提高程序设计过程中分析问题和解决问题的能力,加强创新意识,理论知识和实践技能得到全面发展。
(3) 每个知识点都包括基础案例,每章都有一个综合案例,知识内容层层推进,易于接受和掌握。每章的综合案例以“大学生综合测评系统”为基础,以开发过程为主线,将知识点有机地串联在一起,便于掌握与理解。
(4) 各章习题提供一定数量的课外实践题目,采用课内外结合的方式提高学生软件开发的兴趣和工程实践能力,满足当前社会对软件开发人员的需求。
(5) 教材提供配套课件和综合案例的源代码。
本书由马志强、王慧、李雷孝和郭若飞主编。其中,马志强编写了第1、2和4章,王慧编写了第3、5、9章,李雷孝编写了第6、7和8章,郭若飞编写了第10、11、12章。编者在编写过程中参阅了甲骨文公司、青岛软件园、杰普软件等公司的教学科研成果,也吸取了国内外教材的精髓,这里表示由衷的感谢。
本书的出版过程得到了刘利民教授、张世娥老师的支持和帮助,还得到了清华大学出版社的大力支持,在此表示诚挚的感谢。本教材受到全国高等学校计算机教育研究会2013年度高等学校计算机教材建设项目资助。
由于编者水平有限,书中难免有不妥和疏漏之处,恳请各位专家、同仁和读者不吝赐教。

编者2022年2月近年来,在TIOBE公布的排名中,Java始终位列三甲的成绩。排名在一定程度上说明Java在行业中得到广泛应用,使用Java技术进行软件开发的人员较多。要想成为Java技术类的开发人员,不仅需要有扎实的Java语言功底,还要学习掌握软件设计与开发技术。
本书既叙述软件开发技术,又培养工程实践能力。以IT企业对开发人员的技术能力要求为基础,以工程能力培养为目标,阐述软件工程对计算机语言要求的知识点,并形成相应知识单元;按照工程需求顺序组织课程内容,便于学习和掌握;提供一定量案例,注重培养实践能力。
全书共分13章,内容安排以工程应用为主线。第1章为Java语言概述;第2章为Java语法基础;第3章为面向对象编程;第4章为数组;第5章为抽象类、接口、内部类以及反射;第6章为GUI基础、事件处理、适配器类以及常用Swing组件编程;第7章为List、Set和Map接口与其实现类的使用;第8章为泛型类、泛型方法的定义与使用;第9章为Java程序中异常的处理;第10章为I/O流的读/写操作;第11章为JDBC编程,事务处理以及DAO模式编程;第12章为线程编程;第13章为基于TCP和UDP协议的Socket编程。
本书具有以下特点。
(1) 遵照教指委计算机科学与技术和软件工程专业的培养目标和方案,合理安排知识体系,结合Java技术方向的先行课程和后续课程组织知识点与内容。
(2) 注重理论和实践结合,融入面向对象软件开发过程和工程实践背景的项目案例,使学生在掌握理论知识的同时提高分析问题和解决问题的能力,加强创新意识,理论知识和实践技能得到全面发展。
(3) 每个知识点都包括基础案例,每章都有一个综合案例,知识内容层层推进,易于学习。每章综合案例以“大学生综合测评系统”为基础,以开发过程为主线,将知识点有机串联在一起,便于掌握理解。
(4) 章节习题提供一定数量的课外实践题目,采用课内外结合的方式提高学生的软件开发兴趣和工程实践能力,满足当前社会对软件开发人员的需求。
(5) 本书提供配套课件和案例的源码。
本书由马志强、张然和李雷孝编著。其中,马志强编写第1、2、3、4、11和13章并统稿,张然编写第8章、各章综合案例与习题,李雷孝编写第5、6、7、9、10和12章。编写过程中参阅了甲骨文(Oracle)公司、安博教育集团、青岛软件园、达内时代科技、杰普软件等公司的教学科研成果,也吸取了国内外教材的精髓,在此表示由衷感谢。感谢柯展、闫瑞在案例代码的实现和测试中的贡献。
本书的出版得到刘利民教授、刘建兰老师的支持和帮助,还得到清华大学出版社的大力支持,在此表示诚挚的感谢。
本书受到全国高等学校计算机教育研究会2013年度高等学校计算机教材建设项目资助。
由于作者水平有限,书中难免有不妥和疏漏之处,恳请读者不吝赐教。

编者2013年10月