总共讲了78条规则,指导我们编写出更规范的代码。
目录
例如:
// 工具类
public class utilityClass {
private utilityClass() {
throw new AssertionError();
}
}
6. 消除过期的对象引用
通用约定
- 自反性
- 对称性
- 传递性
- 一致性
- 非空性,对于任何非 null 的引用值 X ,
x.equals(null)必须返回 false
- 不要提供任何会修改对象状态的方法
- 保证类不会被扩展
- 使所有的域都是 final 的
- 使所有的域都成为私有的
- 确保对于任何可变组件的互斥访问
16. 复合优先于继承
- 现有的类可以很容易被更新,以实现新的接口
- 接口是定义 mixin(混合类型)的理想选择
- 接口允许我们构造非层次结构的类型框架
常量接口模式是对接口的不良使用,JDK 源码中也用这种写法
20. 类层次优于标签类
就是 @SuppressWarnings("unchecked) 那个注解
30. 用 enum 代替 int 常量
34. 用接口模拟可伸缩的枚举
static int min(int... args) {
//...
}// for-each 循环
for (Element e : elements) {
doSomething(e);
}// 下面算出来会丢失精度,货币计算时推荐使用 BigDecimal
System.out.println(1.03 - .42);使用反射机制:
- 丧失了编译时类型检查的好处
- 执行反射访问所需要的代码非常笨拙和冗长
- 性能损失
本地方法(native method),Java中某些方法是用 C 或 C++ 写的
ExecutorService executor = Executor.newSingleThreadExecutor();
executor.execute(runable);
executor.shutdown();