第 57 条:将局部变量的作用域最小化
第 58 条:for-each 循环优先于传统的 for 循环
第 59 条:了解和使用标准类库
第 60 条:如果需要精确的答案,请避免使用 float 和 double
- float 和 double 类型尤其不适合用于货币计算
- 可以使用 bigDecimal、int 或者 long 进行货币计算(BigDecimal 不方便而且慢,如果数值范围没有超过 9 位十进制数字,就可以使用 int;如果不超过 18 位数字,就可以使用 long;如果可能超过 18 位,就必须使用 BigDecimal)
第 61 条:基本类型优先于装箱基本类型
第 62 条:如果其他类型更适合,则尽量避免使用字符串
经常被错误的用字符来代替的类型包括基本类型、枚举类型和聚集类型。
第 63 条:当心字符串连接的性能
为连接 n 个字符串而重复使用字符串连接符(+),需要 n 的平方级时间。这是由于字符串不可变,当两个字符串被连接在一起时,他们的内容都要被拷贝。
第 64 条:通过接口引用对象
第 65 条:接口优先于反射机制
对于有些程序,它们必须用到在编译时无法获取的类,但在编译时存在适当的接口或者超类,通过它们可以引用这个类。如果是这种情况,就可以以反射的方式创建实例,然后通过它们的接口或者超类,以正常的方式访问这些实例。如果适当的构造器不需要任何参数,那就不需要使用 java.lang.reflect 包,采用 Class.newInstace 方法就可以了。
第 66 条:谨慎地使用本地方法
第 67 条:谨慎地进行优化
不用费力去编写快速的程序–应该努力编写更好的程序,速度自然会随着而来。