专栏首页wymJava String 和 StringBuilder 中 equals 的区别

Java String 和 StringBuilder 中 equals 的区别

    String 中 只要内容相同 equals 就是 true, 而 == 需要地址及内容相同才行。 

    原本的Object 类中equals方法

public boolean equals(Object obj) {
        return (this == obj);
    }

String 中改写了这个方法

public boolean equals(Object anObject) {
        if (this == anObject) {
            return true;
        }
        if (anObject instanceof String) {
            String anotherString = (String) anObject;
            int n = value.length;
            if (n == anotherString.value.length) {
                char v1[] = value;
                char v2[] = anotherString.value;
                int i = 0;
                while (n-- != 0) {
                    if (v1[i] != v2[i])
                            return false;
                    i++;
                }
                return true;
            }
        }
        return false;
    }

 可以看出,重写的equals方法先是判断地址是否相同,相同返回不同再判断内容是否相同。

而StringBuilder没有重写该方法所以仍然是判断地址

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ACM / ICPC 2018亚洲区预选赛北京赛站网络赛 3题签到

    选择一个城市开始,必须按照顺时针遍历完所有城市,第一次到这个城市获得ai经费,到下一个城市的代价是bi

    用户2965768
  • 【模板】割点 tarjan

    若为根,有两个及以上孩子算割点,不为根,点u存在连接的一个点v访问的最小值low[v]大于等于(等于就是最后还是走到这个点)dfn[u],则u为割点

    用户2965768
  • 不成熟的梦想家 (未熟DREAMER)

    由于区间更改不会影响区间内点的相对大小,只要维护x和y+1两个点即可,注意y==n时不用修改

    用户2965768
  • 三万字带你彻底吃透MyBatis源码!!

    作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。自开源半年多以来,已成功为十几家中小型企业提供了...

    冰河
  • 配置文件的几种读取方式(Java和Lua)

    在工作中为了方便项目管理,通常会用到配置文件,以前用的都是配置excel表格转成json格式文件,再读取数据,记录一些有用的方法,也提供给大家参考

    深雾
  • 微信JSSDK接入Java版--步骤及问题处理和解决

    微信JSSDKJava版接入--步骤及问题处理和解决 可以关注测试微信号,查看效果  服务器是个人的。请不要恶意攻击。 JSSDK使用步骤 http://mp...

    小帅丶
  • leetcode468. Validate IP Address

    校验该字符串是IPV4地址还是IPV6地址还是二者都不是。 IPV4地址通过小数点分割为4个部分,每个部分都是0~255之间的正整数,且不能包含开头的0,如01...

    眯眯眼的猫头鹰
  • 源码分析 Sentinel DegradeSlot 熔断实现原理

    Sentinel 中的熔断实现类为 DegradeSlot。DegradeSlot 的类定义如下图所示:

    丁威
  • String类的equals方法

    2.同一种对象? 地址不同,instanceof 看是不是String类型,如果不是肯定不同

    heasy3
  • String equals()方法 源码分析

    Jacob丶

扫码关注云+社区

领取腾讯云代金券