本书介绍了在Java编程中57条极具实用价值的经验规则,这些经验规则涵盖了大多数开发人员每天所面临的问题的解决方案。通过对Java平台设计专家所使用的技术的全面描述,揭示了应该做什么,不应该做什么才能产生清晰、健壮的高效的代码。
本书中的每条规则都以简短、独立的小文章形式出现,这些小文章包含了详细而精确的建议,以及对语言中许多细微之处的深入分析,并通过例子代码加以进一步说明。贯穿全书的是通用的语言用法的设计模式,以及一些具有启发意义的技巧的技术。
......(更多)
Joshua Bloch是Sun公司的高级工程师,也是“Java平台核心组”的设计师。他设计并实现了获奖的Java Collections Framework和java.math软件包,并且对Java平台的其他部分也做出了贡献。Joshua是许多技术文章和论文的作者,他的关于抽象数据对象复制的博士论文获得过“ACM杰出博士论文奖”提名。他拥有哥伦比亚大学的学士学位和卡耐基-梅隆大学的博士学位。
潘爱民 浙江海宁人,现任职于北京大学计算机科学技术研究所,副研究员;研究方向为信息安全(包括网络安全和公钥技术)和软件开发(包括组件技术和模式);主要著作有《COM原理与应用》等,译著有《Visual C++技术内幕》(第4版)、《COM本质论》和《C++ Primer中文版》等。
......(更多)
译者序
序
前言
第一章 引言
第二章 创建和销毁对象
第1条:考虑用静态工厂方法代替构造函数
第2条:使用私有构造函数强化singleton属性
第3条:通过私有构造函数强化不可实例化属性
第4条:避免创建重复的对象
条5条:消除对期的对象引用
第6条:避免使用终结函数
第三章 对于所有对象都通用的方法
第四章 类和接口
第五章 C语言结构的替代
第六章 方法
第七章 通用程序设计
第八章 异常
第九章 线程
第十章 序列化
中英文术语对照
参考文献
模式和习惯用法索引
索引
......(更多)
如果类具有从客户端得到或返回到客户端的可变组件。类就必须保护性的拷贝这些组件。如果拷贝的成本受到限制,并且信任他的客户端不会不恰当的修改组件,就可以在文档中指明客户端的职责是不得修改受到影响的组件,以此来代替保护性拷贝
大多数程序员都不需要这个方法(指枚举的ordinal方法),他是设计成用于像EnumSet和EnumMap这种基于枚举的通用数据结构的,除非你在编写的是这类数据结构,否则最好完全避免使用ordinal方法。
It is critical to check the validity of constructor parameters to prevent the construction of an object that violates its class invariants.
do not use the clone method to make a defensive copy of a parameter whose type is subclassable by untrusted parties.
......(更多)