T31-DAY15(Java代码避坑指南)

T31-DAY15(Java代码避坑指南),第1张

T31-DAY15(Java代码避坑指南)

1.浮点数处理

浮点数之间的等值判断,基本数据不能使用==,包装数据类型不能使用equals来判断
BigDecimal的等值比较应该使用compareTo()方法,不能使用equals();
禁止使用构造方法BigDecimal(double)的方式把double对象转化为Bigdecimal对象

2.日期类型处理
Java中传统日期类型

Date:表示特定的瞬间,精确到毫秒
SimpleDateFormat:对日期格式化

传统日期API问题

1.所有的日期类型都是线程不安全的
2.日期,时间,时间戳没有明确对应的类
3.对于格式化和解析的需求

JDK8新增API的优势

1.线程安全
2.时间和日期都有相应的类
3.在所有的类中,方法都被明确定义以完成相同的行为
4.所有新的日期、时间API类都实现了一系列通用的方法以完成通用任务

日期格式化需要注意的问题

1.日期格式化时,传入patten中表示年份统一使用小写的y
2.在日期格式中分清楚大写的M和小写的m,大写的M和小写的h分别指代的意义
3.获取当前毫秒值:System.currentTimeMillis(),System.nanoTime,JDK8中,针对统计时间等场景,推荐使用Instant类。

控制语句只switch

1.每个case要通过continue/break/return 等来终止
2.要么注释说明程序将继续执行到哪个case为止
3.在一个switch块,有且default必须放在最后
4.switch括号内的变量类型必须进行null判断

控制语句规约

在if/else/for/while/do语句中必须使用大括号
表达异常的分支时,少用if-else

控制语句好习惯

不要再其他表达式(尤其是条件表达式)插入赋值语句。
不要再条件判断中执行其他复杂的语句以提高可读性
避免使用反逻辑符

高并发场景下控制语句规约

避免使用“等于”判断作为中断或退出的条件。使用大于或者小于替代。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5434217.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存