首页 > 其他 > 详细

码出好代码--小知识点

时间:2019-08-16 10:07:49      阅读:87      评论:0      收藏:0      [点我收藏+]
1. 接口过时必须加@Deprecated注解,并清晰的说明采用新接口或者新服务是什么。
2. Object的equals方法容易抛出NPE,应使用常量或确定有值的对象来调用equals。

推荐使用java.util.Objects.equals(Object, Object)。

3. 集合初始化,尽量指定集合初始值大小。

反例:HashMap放置1024个元素,随着元素不断增加,需要resize7次,严重影响性能。

4. 创建线程和线程池时请指定有意义的线程名称,方便出错时回溯。
5. SimpleDateFormat是线程不安全的,不要定义为static变量。

JDK8用DateTimeFormatter(This class is immutable and thread-safe)代替SimpleDateFormat。

6. 避免采用取反逻辑运算符,取反逻辑不利于快速理解。
7. 对trace/debug/info级别的日志输出,必须使用条件输出形式或者使用占位符的方式。
    if (log.isInfoEnabled()) {
        log.info("Processing trade with id:" + id + " and symbol:" + symbol);
    }
        
    log.info("Processing trade with id:{} and symbol:{}", id, symbol);

当日志级别为error时,这两种都不会执行字符串拼接操作和toString()方法,节省系统资源。在强调一点高并发系统线上千万不能有System.out.println()。

8. 返回零长度的数组或者集合,而不是null,也别传递null

简化代码空判断,防止NPE。

List<PromoIndex> promoIndexList = getBatchPromoStoresIndexs(promo, sku);
if (CollectionUtils.isNotEmpty(promoIndexList)) {
    for (PromoIndex index : promoIndexList) {
    
    }
}
9. 用枚举替代int常量
  • 与int常量相比,枚举要易读的多,也更加安全,功能更加强大。

  • 后面持续更新!!!

码出好代码--小知识点

原文:https://www.cnblogs.com/wudiffs/p/11361993.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!