Effective Java 第八九十章

方法

检查参数的有效性

 

必要时进行保护性拷贝

 

谨慎设计方法签名

1 方法名称:易于理解,风格一致,大众认可

2 避免过长的参数列表

3 参数类型:优先使用接口而不是类

4 boolean参数,优先使用两个元素的枚举类型

 

慎用重载

1 对重载方法的选择是静态的,对覆盖方法的选择是动态的

2 不要导出具有相同参数数量的重载方法

 

慎用可变参数

 

返回零长度的数组或者集合,而不是null

 

谨慎返回optional

1 永远不要通过返回Optional的方法返回null

2 optional不应该包括集合,map,stream,数组和optional

3 如果无法返回结果并且没有返回结果时客户端必须执行特殊的处理,那么就返回optional

4 不应该返回基本包装类型的optional

5 optional不合适作为键,值或者集合数组中的元素

 

为所有导出的API元素编写文档注释

 

 

通用编程

 将局部变量的作用域最小化

1 局部变量在第一次使用它的地方进行声明

2 局部变量都应该包含一个初始化表达式,除了try-catch

3 方法应该小而集中

 

for-each循环优先于for循环

 

了解和使用类库

 

如果需要精确的答案,请避免使用float和double

1 推荐bigdecimal,int,long

 

基本类型优先于装箱基本类型

1 装箱基本类型慎用==操作符

 

如果其他类型更合适,尽量避免使用字符串

1 字符串不适合代替枚举

2 字符串不适合代替聚合类型

 

了解字符串连接的性能

 

通过接口引用对象

 

接口优先于反射机制

 

谨慎地使用本地方法

 

谨慎地进行优化

1 编写好的程序而不是快的程序,不要为了性能牺牲合理的结构

 

遵守普遍接受的命名惯例

 

 

异常 

只针对异常的情况才使用异常

1 异常不应该用于正常的控制流

 

对可恢复的情况使用受检异常,对编程错误使用运行时异常

 

避免不必要地使用受检异常

 

优先使用标准异常

 

抛出与抽象对应的异常

 

每个方法抛出的所有异常都要建立文档

 

在细节消息中包含失败-捕获信息

 

努力使失败保持原子性

 

不要忽略异常

 

posted @ 2020-04-21 11:01  褐色键盘  阅读(130)  评论(0)    收藏  举报