前言
今天主要分享下,编码可能会遇到的坑。
浮点数据处理
货币数据类型
任何货币金额均以最小货币单位且整型类型来进行存储
浮点数之间的等值判断
- 基本数据类型不能用==比较
- 包装类型不能用equal判断
- BigDecimal等值比较使用compareTo()方法
- equal()方法会比较值和精度
- compareTo()忽略精度
- Bigdecimal禁止使用BigDecimal(double)
日期数据的处理
传统日期API存在的问题
- 日期类线程不安全
- 日期、时间、时间戳没有明确对应类
新增API优势
- 线程安全
- 时间日期有对应类
- 方法明确定义完成相同行为以及通用的任务
区分大小写M和H的区别
M:月份
m:分钟
H:24小时制
h:12小时制
控制语句的避坑规范
switch
- 每个case通过continue/break/return终止或注释说明
- 必须包含一个default在最后
- 当判断条件是String需先进行null判断
规约
- 在if/else/for/while/do语句中必须使用大括号
- 表达异常的分支少用if-else
- 三目运算符
- 不要在其他表达式插入赋值语句
- 高并发场景避免使用等于判断,改用区间判断
总结
今天主要补充了编码规约的浮点、日期与控制规约,全面强化了规约的思想。