- “==”操作符用于比较两个对象的地址是否相等。
.equals()
方法用于比较两个对象的内容是否相等。
| String s1 = new String("hh"); |
| String s2 = new String("hh"); |
| |
| System.out.println(s1.equals(s2)); |
| |
| System.out.println(s1 == s2); |
| |
| public boolean equals(Object obj) { |
| return (this == obj); |
| } |
| 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; |
| } |
| |
| new String("ha").equals("ha"); |
| |
| new String("ha") == "ha"; |
| |
| new String("ha") == new String("ha"); |
| |
| "ha" == "ha"; |
| |
| "ha" == "h" + "a"; |
| |
| |
| new String("ha").intern() == "ha"; |
| |
| public static boolean equals(Object a, Object b) { |
| return (a == b) || (a != null && a.equals(b)); |
| } |
| public boolean contentEquals(CharSequence cs) { |
| |
| if (cs instanceof AbstractStringBuilder) { |
| if (cs instanceof StringBuffer) { |
| synchronized(cs) { |
| return nonSyncContentEquals((AbstractStringBuilder)cs); |
| } |
| } else { |
| return nonSyncContentEquals((AbstractStringBuilder)cs); |
| } |
| } |
| |
| if (cs instanceof String) { |
| return equals(cs); |
| } |
| |
| char v1[] = value; |
| int n = v1.length; |
| if (n != cs.length()) { |
| return false; |
| } |
| for (int i = 0; i < n; i++) { |
| if (v1[i] != cs.charAt(i)) { |
| return false; |
| } |
| } |
| return true; |
| } |
本文作者:n1ce2cv
本文链接:https://www.cnblogs.com/sprinining/p/18301342
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步