[Java] == equals() 区别
==
判断两边的内容,是否是JVM里面的同一个地址里的对象
equals()
除了自定义以及框架中重写的equals()外,主要是先判断==,如果不是同一地址的对象或数据,再判断值是否相等。String的equals()就是这样。
对于String的equals(),先判断是否是同一个地址,用的是==。
如果==是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;
}
简单总结
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)