第59条 了解和使用类库
- 通过使用标准类库,可以充分利用这些编写标准类库的专家的知识,以及在你之前的其他人的使用经验
- 选择的随机数生成器现在是
ThreadLocalRandom
- 需要主要学习java.lang、java.util和java.io
思考
我们大多数只会关注比较重大的版本升级,比如Java8的Lambda
、Stream
等等,从而忽视了小的版本升级。在之前的阅读里我们才看到Java7的try-with-resource,没有人使用ThreadLocalRandom
,ForkJoinPool
也很少有人用(这个线程池没有拒绝策略,相比之下更容易发生OOM)。对于每一个版本都应该关注下新的特性。
比如现在Spring Boot、Jenkins等工具的最新版都已经最低支持Java11了,可以开始关注下9~11的新特性
第60条 如果需要精确的答案,请避免使用 float 和 double
-
float
和double
类型尤其不适合用于货币计算,应当使用BigDecimal
、int
或者long
进行货币计算
思考
-
BigDecimal
作为一个类,使用起来肯定比float
、double
要方便很多,除了性能问题 - 阿里的开发手册里对于货币计算是这么说的:任何货币金额,均以最小货币单位且整型类型来进行存储。当然没必要规矩的太死,作为涉及很多货币计算的系统,经常有很多需要保留很多位数的需求,其实使用
BigDecimal
更合理(虽然BigDecimal
的底层还是long
)