第1章 异常 1
条款1 [规则]用时间频度来确定异常情况 2
条款2 [规则]用不需查异常来强化方法的约定 15
条款3 [规则]用Error的子类来表示系统级的异常和程序不必处理的异常 19
条款4 [规则]用不从RuntimeException继承的Exception的子类来表示需查异常 21
条款5 [规则]用RuntimeException的子类来表示不需查异常 22
条款6 [规则]用链式异常来保存原始异常信息 23
小结 32
第2章 代码风格 33
条款7 [建议]将类的属性按种类分块 34
条款8 [建议]将方法的实现代码按功能分块 36
条款9 [建议]适度地使用对齐 38
条款10 [建议]控制代码的长度 42
条款11 [建议]尽可能不使用import 43
条款12 [建议]尽量减少同名的类 45
条款13 [建议]用包名体现类的层次 47
小结 49
第3章 内存管理 51
条款14 [规则]为内存分配做好准备 52
条款15 [规则]用StringBuffer代替迭代使用的String 88
条款16 [规则]手工清除短期对象的引用 95
条款17 [建议]长期引用容易引起内存泄漏 105
小结 120
第4章 面向对象的设计 121
条款18 [规则]用接口代替抽象类 122
条款19 [规则]不要同时使用重载(overload)和覆盖(override) 124
条款20 [规则]正确地使用继承表示分类关系 129
条款21 [规则]用组合表示包含的关系 135
条款22 [规则]避免方法的副作用 143
条款23 [建议]首善之举是重构 169
条款24 [建议]选择合适的体系结构 188
小结 210
第5章 集合 211
条款25 [规则]通过Iterator,使用for或while循环来访问集合的元素 212
条款26 [建议]使用不可变类作为Set的元素和Map的Key 216
条款27 [规则]不要与集合的实现南辕北辙 222
条款28 [规则]谨慎地使用集合的clone()方法 237
条款29 [建议]掌握集合的惯用法 243
小结 250
第6章 性能调整 251
条款30 [建议]定义完整的性能调整过程 252
条款31 [建议]改善Java程序运行环境 257
条款32 [建议]减少创建对象 261
条款33 [规则]减少循环体的执行代码 272
条款34 [规则]减少I/O操作时间 274
条款35 [规则]正确使用JDBC编程接口 276
小结 295
附录 你是哪一类Java程序员 297
参考文献 303