EffectiveJava-2
一、使用类库
使用类库的好处:
- 无须关心方法是如何实现的,由算法专家花了大量时间设计、实现和测试这个方法,不仅保证了正确性,而且一旦有缺陷,下一个版本就会修复。
- 不必浪费时间为哪些与工作不太相关的问题提供特别的解决方案,应该吧时间花在应用程序上,而不是底层的细节上。
- 它们的性能往往会随着时间的推移而不断提高,无须你做任何努力。
- 它们会随着时间的推移而增加新的功能。
- 使用类库可以让自己的代码融入主流,是代码更易读,更易维护、更易被大多数开发人员重用。
如果有时间,每个重要的发行版本,都要去看看增加和修改了哪些特性。
二、如果想要正确的答案,请避免使用float和double
- float和double类型不适合用于货币计算,如:
System.out.println(1.03-0.42);
此行代码会输出:0.6100000000000001
- 如果想要精确计算,请使用BigDecimal、int或者long进行计算。
总结:
- 对于任何需要精确答案的计算任务,请不要使用float或者double。
- 使用BigDecimal,系统会处理十进制小数点,可以完全控制舍入,可以从八种舍入模式中选择其一,若数值超过18位,就必须使用BigDecimal。但可能会带来因为不使用基本类型产生的不便。
- int需要自己处理十进制小数点,所涉及的数值不可太大,若数值范围没有超过9位十进制数字,就可以使用int。
- long也需要自己处理十进制小数点,若数值范围没有超过18位十进制数字,就可以使用long。
参考:《Effective java》P224~P229