前言



当前,中国在软件开发领域拥有大量的现有程序员资源和潜在的程序员资源(即各大院校软件工程专业的本科生和硕士生),但丰富的人口红利并没有带来与之相当的技术创新优势,从业者大多停滞在单纯使用技术的低层次阶段,而难以对技术进行与应用相关的主动创新。编者认为,这与当下高校在软件工程(尤其是软件项目开发)教学中各门课程没能环环相扣有关,也与有针对性的相关原理性讲解的专业书籍较少存在一定关系。
现有的大多数“Java程序设计基础”课程的相关教材一般主要讲述Java语言的基本语法(包括Java语言基础、数据类型、Java类和对象等),而与软件工程专业普遍开设的“Java EE”课程相对应的内容又主要是Servlet/JSP、SSH(Struts、Spring、Hibernate)等企业级应用。为了填补Java程序设计基础和J2EE等Java高级应用之间的空白,本书讲解了Java的高级技术以及高级技术的应用实例,让读者了解Java技术背后的原理。
编者认为学习技术不仅要会使用,还要知道技术后面的原理,这样才能深入地掌握技术,快速、彻底解决技术使用过程中出现的问题,科学客观地评估技术存在的风险,有效地提高技术的使用效率。因此,本书通过讲解Java高级技术帮助读者学会Java技术,更希望读者明白Java技术后面的原理。
本书特色
1. 内容体系完整,从基础开始,由浅及深
教材是实现教学要求的重要保证,本书体系完整,注重应用,强调实践。
每一个章节的内容都是由浅入深、循序渐进地展开,使读者可以渐进地学习本书的全部知识。
2. 编著人员项目经验丰富,实例源于真实项目
本书的作者都是参加实际开发项目的负责人或主要成员,有丰富的Java程序开发实践经验,因此本书内容都是实际应用中确实需要的知识和技能。
本书所用实例全部来源于项目组开发且正在使用的真实项目,相关细节契合真实的软件开发实践环境。
3. 各章实例丰富,有助于读者理解所述知识
本书的每一个章节都提供了充分的实例,这些例子经过了精心设计与调试,能够恰当地展示相关知识点的实现细节。读者可以在学完相关理论知识后,通过上机实践来更加深入地了解、掌握这些知识点。
4. 使用较新版本的开发平台
本书所用的开发工具和相关框架在编写时都是较新版本,力图反映Java相关技术的新发展。读者可在学习开发技术的同时接触较新版本的开发平台,为以后的深入实践奠定基础。
5. 配有源代码等相关电子文档,方便读者使用
为了方便读者使用本书提供的大量示例程序,特将所有源代码都收录到本书附带的电子资源中,读者可以运行这些代码,以利于读者更深入地理解相关的理论知识。
同时,我们还提供了课后习题的参考答案,以供广大读者练习时借鉴。
另外,作为一本教材,本书还专门为广大教师配备了与教材内容一致的电子课件,以方便授课使用。
读者对象
 初步掌握Java技术、想进一步学习Java高级编程的读者
 计算机专业的本科生
 非计算机专业的硕士研究生
本书内容
Java高级技术本身是由基本技术通过综合、交叉后发展而来的。本书试图让读者了解这种从简单技术到复杂技术的演变过程,掌握演变规律,从而具备创新发明技术的能力。
第1章是关于写出好代码的规则、惯例、模式。
第2章是Web编程,包括Web服务器、Servlet、JSP、监听器和过滤器、Ajax等内容。
第3章是基于Java的数据库编程,包括数据库基础知识、JDBC及其进阶等内容。
第4章是类型信息与反射,包括类型信息的存储、加载、核心类及其具体应用(即反射、动态代理)等内容。
第5章是泛型,包括泛型的类、方法、接口、边界以及通配符等内容。
第6章是注解,包括注解的使用、自定义及其处理器,以及实体映射与翻译等内容。
第7章是序列化,包括对象序列化、自定义序列化、XML文件、JSON等内容。
第8章是基于Java的网络编程,包括网络协议、流、TCP编程、UDP编程、HTTP编程等内容。
第9章主要是多线程,包括线程基础知识、线程资源共享、线程协作、同步器等内容。
第10章是基于Java的综合应用案例,包括MVC架构、Web实例、数据库实例、反射实例、注解实例、网络编程实例等内容。
电子资源
本书附带的电子材料中主要有以下内容:
 与教材内容一致的电子课件(PPT)
 本书中的示例源代码
 本书各个章节部分课后习题的参考答案(仅向教师提供)

作者
2017年1月