[Java] == equals() 区别

==
判断两边的内容,是否是JVM里面的同一个地址里的对象
equals()

除了自定义以及框架中重写的equals()外,主要是先判断==,如果不是同一地址的对象或数据,再判断值是否相等。String的equals()就是这样。

对于Stringequals(),先判断是否是同一个地址,用的是==。
如果==是true,那么值一定是相等的。
如果不是同一个地址,再判断值是否相等。

如果两个String值都不一样,肯定不是在同一块内存中的
// package java.lang;
    public boolean equals(Object anObject) {
        if (this == anObject) {//先使用==
            return true;
        }
        if (anObject instanceof String) {//在判断是一个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;
    }

简单总结

posted @   NetUSA  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示