前言FOREWORD 本书第2版于2017年由清华大学出版社出版,得到了广大高校师生和读者的好评,也收到了很多好的建议和意见,在此表示衷心的感谢。 习近平总书记在党的二十大报告中指出,“教育、科技、人才是全面建设社会主义现代化国家的基础性、战略性支撑”“深入实施科教兴国战略,全方位加强基础学科人才培养,部署国家关键领域急需高层次人才培养专项,加快卓越工程师培养,加快造就更多拔尖创新人才”。为响应党和国家号召,培养、造就一批创新能力强,适应经济、社会发展需要的创新技术人才,同时保持与Java知识体系的同步迭代更新,有必要对原教材进行改版,一方面对知识体系进一步扩展,纳入更多Java 8~Java 17中的新功能、新特性;另一方面增强案例的启发性和实用性。本次改版具体修改内容如下: (1) 在基础篇与提高篇中,依据Java 17的最新功能及特性,对相关类及知识体系进行了全面更新,补充了一系列新的编程方式和程序框架。 例如,第4章新增了模块(module),使得代码组织更安全。 第5章新增了接口Comparator和Comparable,以及接口中的默认方法和静态方法等,方便了对象的比较排序和接口的扩展;Lambda表达式和函数式接口作为Java 8提供的一种新特性,使得Java能进行“函数式编程”,从而写出更简洁、灵活的代码。 第6章进一步丰富了集合框架,新增了接口Queue和Stream,Stream使用类似SQL语句查询数据的方式提供对Java集合运算和表达的高阶抽象,让程序员可以写出高效率、干净的代码。第7章结合实际工程项目场景将异常信息记录到日志文件中。第8章在传统流处理方法的基础上引入了新的NIO组件,支持面向缓冲区的、基于通道的I/O操作,从而实现更加高效的文件读写。 第9章引入了守护线程,新增了基于Timer、Callable以及线程池的多种线程创建方式,优化了线程的管理调度和安全性。 (2) 在网络篇和实例篇中,在更新JSP与Servlet技术的同时,引入了新的Web开发框架Spring Boot,支持快速Web项目构建。 例如,第12章更新Servlet API到最新版4.0,使用注解方式指定Servlet与URL之间的映射关系。第14章引入了数据库连接池技术,提高应用程序访问数据库的效率。第15章通过两个案例展示了不同技术方案(Servlet+JSP技术和Spring Boot框架)下同一项目的实现过程差异,让读者体会到如何基于Spring Boot、以优雅的“零配置”方式快速构建一个Web项目。(3) 根据补充的知识点,对相关案例进行了同步更新,撰写思路仍然沿袭了本书一贯的风格,强调案例的层次性和实用性。 参与本书第3版修订的有朱庆生、古平、刘骥、葛亮、杨瑞龙等,感谢老师们的辛勤付出,也感谢广大读者在本次修订过程中给予的意见和建议,感谢清华大学出版社的大力支持。 由于Java技术涵盖面广并且发展迅速,作者水平有限,书中难免有不足之处,诚请广大读者批评指正,以便作者改进、完善。 作者 2023年1月