EffectiveJava-2
时间:2019-10-17
本文章向大家介绍EffectiveJava-2,主要包括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
原文地址:https://www.cnblogs.com/MrZhaoyx/p/11688970.html
- Linux下如何安装和卸载JDK
- 讨厌算法的程序员 2 - 证明算法的正确性
- Day4上午解题报告
- [编程经验] Python正则表达式
- Day4下午解题报告
- linux下 Error running javac compiler
- 讨厌算法的程序员 1 - 插入排序
- Linux下使用ssh密钥实现无交互备份
- [编程经验] Python中的continue和break语句
- 洛谷 P3386 【模板】二分图匹配 Dinic版
- [编程经验] 拉勾网爬虫数据的后续处理
- Linux下使用rsync实现文件备份
- 【干货】基于TensorFlow卷积神经网络的短期股票预测
- [编程经验] 基于bs4的拉勾网AI相关工作爬虫实现
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 【go】剑指offer:3种方法寻找二进制1的个数
- 高并发技术
- Working with Errors in Go 1.13
- Hadoop技术(二)资源管理器YARN和分布式计算框架MapReduce
- CDH——Cloudera’s Distribution Including Apache Hadoop
- 【go】剑指offer:用26个英文字母组合表示列数
- Flink——运行在数据流上的有状态计算框架和处理引擎
- goland破解教程
- HTTP接口设计
- NSQ分布式消息基础入门
- 【golang】剑指offer 最大n位数
- Spark提交Jar任务警告: Initial job has not accepted any resources;
- Defer,Panic,and Recover
- Spark——底层操作RDD,基于内存处理数据的计算引擎
- Go 项目最佳实践