java中equals和equal的区别
答案:2 悬赏:20 手机版
解决时间 2021-01-31 08:44
- 提问者网友:动次大次蹦擦擦
- 2021-01-30 17:14
java中equals和equal的区别
最佳答案
- 五星知识达人网友:独行浪子会拥风
- 2021-01-30 17:34
equals()是object的方法,所以只是适合对象,不适合于基本类型,equals()默认是用"=="比较两个对象的内存地址,如果想要比较两个对象的内容,要重写equals()方法才可。
equal:是用来比较两个对象内部的内容是否相等的,由于所有的类都是继承
自java.lang.Object类的,所以如果没有对该方法进行覆盖的话,调用
的仍然是Object类中的方法,而Object中的equal方法返回的却是==
的判断,因此,如果在没有进行该方法的覆盖后,调用该方法是没有
任何意义的。
equal:是用来比较两个对象内部的内容是否相等的,由于所有的类都是继承
自java.lang.Object类的,所以如果没有对该方法进行覆盖的话,调用
的仍然是Object类中的方法,而Object中的equal方法返回的却是==
的判断,因此,如果在没有进行该方法的覆盖后,调用该方法是没有
任何意义的。
全部回答
- 1楼网友:封刀令
- 2021-01-30 18:50
1.==是判断两个变量或实例是不是指向同一个内存空间
equals是判断两个变量或实例所指向的内存空间的值是不是相同
2.==是指对内存地址进行比较
equals()是对字符串的内容进行比较
3.==指引用是否相同
equals()指的是值是否相同
重写equals:
public boolean equals(object anobject) {
if (this == anobject) {
return true;
}
if (anobject instanceof string) {
string anotherstring = (string)anobject;
int n = count;
if (n == anotherstring.count) {
char v1[] = value;
char v2[] = anotherstring.value;
int i = offset;
int j = anotherstring.offset;
while (n-- != 0) {
if (v1[i++] != v2[j++])
return false;
}
return true;
}
}
return false;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯