- Java程序设计:原理与范例
- 胡平主编
- 2192字
- 2020-08-27 06:24:46
前言
作为发展速度最快、最为开放的面向对象编程平台,Java已成为网络环境下软件开发的首选技术之一。从消费类电子产品到超级计算机,从Android智能移动终端应用到企业级分布式计算,Java已经渗透到人们日常生活的方方面面。
作为具有12年Java平台下企业级商业项目设计开发经验及8年高校计算机专业课程教学经验的“实践派”,本书主编常常思考几个问题:为什么计算机相关专业的很多毕业生在毕业前会报名参加一些社会机构举办的价格不菲的Java技术培训(事实上,培训的大多数内容完全可以通过自学完成)?为什么很多毕业生到企业工作后,发现项目所使用的一些主流技术和框架,在校期间完全不熟悉?原因就在于一些Java基础教材在组织知识点时仅停留在知识点本身——“学院派”味道十足,未能形成完整的、贴近企业实际场景的知识体系,从而导致学生在课程结束之后,要么不知道应继续学习哪些可用于指导企业实际开发的知识,要么因基础不够扎实而不具备自主学习这些知识的能力。
本书主要定位于高等学校计算机学科相关专业的Java语言程序设计课程,对于从事Java平台下软件开发的技术人员同样适用。无论是行文风格,还是知识点的扩展,本书均以使读者具备今后快速、自主学习Java平台下企业级软件开发所涉及技术的能力为目标。全书以原理性、实用性和可实践性为编写总原则,系统介绍Java SE所包含的全部核心知识,同时还以附录列出主流IDE的使用、API文档和源码查阅、编程规范与最佳实践、Java相关技术的学习路线等带有强烈“工业”色彩的内容。相较于同类教材,本书具有以下特色。
1.注重核心知识,不追求“大而全”
Java不仅是一门编程语言,而且是语言、平台、标准和规范的总和,这一点可以通过其官方站点的文档所含内容之多得到印证;此外,由于Java的发展一直非常活跃,因此即使是只针对Java SE,也几乎不可能将其所有内容在一本书籍中详述殆尽。尽管一些Java基础教材包含的内容非常多,但大多浅尝辄止,或与实际开发关联度不大,有些甚至花了较大篇幅介绍官方早已不再推荐使用或已被取代的技术(如AWT组件、Applet等),而目前众多企业级应用所普遍使用的核心技术(如反射、正则表达式、泛型容器、注解等)却未提及,这不能不说是舍本逐末。
本书不追求“大而全”,而是着重介绍Java SE的核心及目前企业开发中经常使用到的知识,使得读者在学习完这些内容后,具备快速学习Java EE(也包括Java ME、Android)等其他领域知识的能力。
2.强调“惯例”的重要性
随着SSH(Struts、Spring、Hibernate)等开源框架在企业级Java项目开发中的广泛使用,近年来,在Java开发领域流行一句名言——惯例优于配置、配置优于编程。这句话强调了Java平台下越来越多的技术对“惯例”的重视,“惯例”已不再是企业对开发人员制定的可遵循可不遵循的代码书写规范,遵守惯例是成为一名优秀的Java程序员所必须具备的素质之一。
本书各示例程序无论从类、方法、变量的命名规范,还是代码的组织风格,都遵循着世界上绝大多数Java程序员所遵守的惯例,其目的就是使读者意识到惯例的重要性,并从一开始就养成遵守这些惯例的良好习惯。
3.在“快速入门”和“参考指南”之间合理平衡
学习一种新技术,阅读官方站点提供的文档无疑是较好的方式。通过阅读官方文档中类似于“Quick Start”(快速入门)的内容,可以对一种技术有一个概览性的认识——该技术是什么、能做什么,以及该技术的简单示例。若要以该技术开发实际的项目,则还需要继续阅读其“Reference/Guide”(参考/指南)——与该技术的高级主题相关的文档。相比之下,“快速入门”内容简单,读者通过其中可实践的示例,能够快速掌握一门技术最基本的用法,但其缺点也很明显——很难指导实际项目的开发;而“参考/指南”虽扩展和延伸度都较为深入,但初学者阅读这样的内容,不仅需要花费大量的时间,而且往往会因为没有实际项目经验而不知不觉地偏离学习主线,因此不适合初学者。
本书大多数知识点以“快速入门”型的示例程序开始,并在“综合范例”中做适当扩展后及时回归到知识主线。此外,在罗列相关API时也针对企业实际需求有所取舍,以期在“快速入门”和“参考/指南”之间找到一个合理的平衡点。
4.从“编程”过渡到“设计”
软件项目的成功实施离不开经验丰富的系统分析和设计人员,“底层的设计”比“上层的编程”更为重要——若底层设计考量充分,即使上层某个模块的代码写得很糟糕,最坏的情况也只是重写该模块;反过来,糟糕的设计不仅会增加上层各模块的编程难度,更为严重的是,需求的一点点变更(软件项目的需求变更是频繁且无法避免的)都可能引起现有代码的大面积重写,从而大大增加了项目失败的风险。因此,在有了一定的编程经验之后,读者应多关注设计、模式和架构等更高层面的知识。
本书在讲解知识点的过程中,适当安排了一些设计模式方面的内容,并通过10余个综合范例引导读者加深对软件设计层面的理解,为其今后进入软件从业人员金字塔上层提供可能。
本书由安徽工程大学计算机与信息学院胡平老师统筹,全书共分为17章,其中,第12章由张义老师编写,第14章由汪国武老师编写,第2、4、11章由长江大学计算机科学学院李鹏老师编写,其余各章及附录由胡平老师编写。感谢安徽工程大学周鸣争教授认真细致地审阅了本书全稿,并提出了许多宝贵意见,同时也感谢电子工业出版社章海涛编辑为本书出版所做的大量工作,与志同道合的人一起讨论共同关心的问题是愉快的,工作也因此而变得更有动力!
因时间仓促加之编者能力所限,书中难免存在不妥和错漏之处,敬请读者朋友批评指正。
2013年3月