猿问

equals和==

5a72a5160001890305000676.jpg

==比较内存地址,所以它们不等于好理解;

但是我没重写equals方法,可是出来的结果为什么是相等的呢?

wenxi_da
浏览 1017回答 2
2回答

产品经理不是经理

字符串类内部已经重写了equals方法,调用equals就是判断它们的内容是否相同。

汤姆大叔

// 这个是equals的源码。 // 把字符串每个字符拆分,然后对比。 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; }
随时随地看视频慕课网APP

相关分类

Java
我要回答