EffectiveJava-2
2024-09-01 17:51:49
一、使用类库
使用类库的好处:
- 无须关心方法是如何实现的,由算法专家花了大量时间设计、实现和测试这个方法,不仅保证了正确性,而且一旦有缺陷,下一个版本就会修复。
- 不必浪费时间为哪些与工作不太相关的问题提供特别的解决方案,应该吧时间花在应用程序上,而不是底层的细节上。
- 它们的性能往往会随着时间的推移而不断提高,无须你做任何努力。
- 它们会随着时间的推移而增加新的功能。
- 使用类库可以让自己的代码融入主流,是代码更易读,更易维护、更易被大多数开发人员重用。
如果有时间,每个重要的发行版本,都要去看看增加和修改了哪些特性。
二、如果想要正确的答案,请避免使用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
最新文章
- UITableView详细注释
- jquery $.each 和for怎么跳出循环终止本次循环
- web性能调优
- sqlzoo.net刷题2
- JavaScript clearInterval定时器失效原因
- 【POJ 1125】Stockbroker Grapevine
- fitnesse 中各类fit fixture的python实现
- MTK平台Android项目APK预置方案
- UVA - 140 Bandwidth(带宽)(全排列)
- HBase、HDFS和MapReduce架构异同简解
- java反射(java.lang.reflect) ---普通单例模式唯一性问题
- [LeetCode] Chalkboard XOR Game 黑板亦或游戏
- java 浅克隆 深克隆
- 2017-07-06 eclipse在线安装SVN1.9插件
- MVC中的Ajax与增删改查(二)
- tensorflow笔记5:tensorflow的基本运作,函数
- bool和BOOL类型知识集合
- Redis学习---Redis操作之有序集合
- linux--GCC用法
- Elasticsearch5.4 删除type