加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

码出好代码--小知识点

发布时间:2020-12-15 08:02:55 所属栏目:Java 来源:网络整理
导读:1. 接口过时必须加@Deprecated注解,并清晰的说明采用新接口或者新服务是什么。 2. Object的equals方法容易抛出NPE,应使用常量或确定有值的对象来调用equals。 推荐使用java.util.Objects.equals(Object,Object)。 3. 集合初始化,尽量指定集合初始值大
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常量相比,枚举要易读的多,也更加安全,功能更加强大。

  • 后面持续更新!!!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读