08 通用程序设计(57-68)

Wu Jun 2019-01-10 22:29:10
05 Java > 02 Effective Java

第 57 条:将局部变量的作用域最小化

第 58 条:for-each 循环优先于传统的 for 循环

第 59 条:了解和使用标准类库

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

  1. float 和 double 类型尤其不适合用于货币计算
  2. 可以使用 bigDecimal、int 或者 long 进行货币计算(BigDecimal 不方便而且慢,如果数值范围没有超过 9 位十进制数字,就可以使用 int;如果不超过 18 位数字,就可以使用 long;如果可能超过 18 位,就必须使用 BigDecimal)

第 61 条:基本类型优先于装箱基本类型

第 62 条:如果其他类型更适合,则尽量避免使用字符串

经常被错误的用字符来代替的类型包括基本类型、枚举类型和聚集类型。

第 63 条:当心字符串连接的性能

为连接 n 个字符串而重复使用字符串连接符(+),需要 n 的平方级时间。这是由于字符串不可变,当两个字符串被连接在一起时,他们的内容都要被拷贝。

第 64 条:通过接口引用对象

第 65 条:接口优先于反射机制

对于有些程序,它们必须用到在编译时无法获取的类,但在编译时存在适当的接口或者超类,通过它们可以引用这个类。如果是这种情况,就可以以反射的方式创建实例,然后通过它们的接口或者超类,以正常的方式访问这些实例。如果适当的构造器不需要任何参数,那就不需要使用 java.lang.reflect 包,采用 Class.newInstace 方法就可以了。

第 66 条:谨慎地使用本地方法

第 67 条:谨慎地进行优化

不用费力去编写快速的程序–应该努力编写更好的程序,速度自然会随着而来。

第 68 条:遵守普通接受的命名惯例