美文网首页
极客时间第9天

极客时间第9天

作者: 随手点灯 | 来源:发表于2020-04-07 14:51 被阅读0次

    今天学习了java业务开发常见错误100例的判等问题

    1. 首先是基本数据类型只能用==,包装类型建议用equals,对于String类型,显式的赋值会相等,但是new String用==就是false.
      对于Integer,目前[-128,127]是缓存对象,Integer i = 1,实际上是调用了Integer.valueOf(),如果是new Integer()就不是一样的值

    2. ,默认的equals是判断引用是否相等,手动重写equals方法需要注意的事情:

      1. 如果这个对象引用相等,直接返回true
      2. 如果这个对象是空,直接返回false
      3. 如果这个对象的类型不一致,返回false
      4. 判断这个对象的属性规则是否一致
    3. 如果重写了equals,应当也要重写hashCode.因为map集合里面使用的hashCode方法,每个对象都有唯一的hashCode,要与equals逻辑保持一致.

    4. 如果重写了equals方法,最好也重写下compareTo方法与equals保持一致.

      1. Collection.searchBinary()就调用了compareTo方法
    5. loombook里面@Data已经帮你实现了equals方法,如果不需要某些字段参与比较可以在字段上面加入@EqualsAndHashCode.Exclud的注解进行排除

    6. 使用阿里巴巴的规约IDEA插件,可以提示你可能出错的代码

    相关文章

      网友评论

          本文标题:极客时间第9天

          本文链接:https://www.haomeiwen.com/subject/yjhnphtx.html