整理一下Effective JAVA中文版的条目,备查

来源:互联网 发布:淘宝开店铺要多少钱 编辑:程序博客网 时间:2024/06/08 07:29
 
整理一下Effective JAVA中文版的条目,备查
 
创建和销毁对象
 
1. 考虑用静态工厂方法代替构造函数
2. 使用私有构造函数强化singleton属性
3. 通过私有构造函数强化不可实例化的能力
4. 避免创建重复对象
5. 消除过期的对象引用
6. 避免使用终结函数
 
对于所有对象都通用的方法
 
7. 在改写equals的时候请遵守通用约定
8. 改写equals时总是要改写hashCode
9. 总是要改写toString
10.              谨慎地改写clone
11.              考虑实现Comparable接口
 
类和接口
 
12.              使类和成员的可访问能力最小化
13.              支持非可变性
14.              复合优先于继承
15.              要么专门为继承而设计,并给出说明文档,要么禁止继承
16.              接口优于抽象类
17.              接口只是被用于定义类型
18.              优先考虑静态成员类
 
C语言结构的替代
 
19.              用类代替结构
20.              用类层次来代替联合
21.              用类来代替enum结构
22.              用类和接口来代替函数指针
 
方法
 
23.              检查参数的有效性
24.              需要时时哟年保护性拷贝
25.              谨慎设计方法的原形
26.              谨慎地使用重载
27.              返回零长度的数组而不是null
28.              为所有导出的API元素编写文档注释
 
通用程序设计
 
29.              将局部变量的作用域最小化
30.              了解和使用库
31.              如果要求精确的答案,请避免使用float和double
32.              如果其他类型更合适,则尽量避免使用字符串
33.              了解字符串连接的性能
34.              通过接口引用对象
35.              接口优先于映像机制
36.              谨慎地使用本地方法
37.              谨慎地进行优化
38.              遵守普遍接受的命名惯例
 
异常
 
39.              只针对不正常的条件才使用异常
40.              对于可恢复的条件使用被检查的异常,对于程序错误使用运行时异常
41.              避免不必要的使用被检查的异常
42.              尽量使用标准异常
43.              抛出的异常要适合与相应的抽象
44.              每个方法抛书的异常都要有文档
45.              在细节消息中包含失败-捕获信息
46.              努力使失败保持原子性
47.              不要忽略异常
 
线程
 
48.              对共享可变数据的同步访问
49.              避免过多的同步
50.              永远不要再循环的外面调用wait
51.              不要依赖于线程调度器
52.              线程安全性的文档华
53.              避免使用线程组
 
序列化
54.              谨慎的实现Serializable
55.              考虑使用自定义的序列化形式
56.              保护性的编写readObject方法
57.              必要时提供一个readResolve方法

 reference:
<<Effective java Programming Language Guide>>, Joshua Bloch, 2002

感谢Joshua Bloch为我们呈现的佳作。

原创粉丝点击