解释一下==号,他比较的是一个对象在内存中的地点位置值,
例如2个字符串对象
String s1 = new String("str");
String s2 = new String("str");
假设用==号比较,会返回false,因为创建了两个对象,他们在内存中地点位置的位置是明显不同的。
equals的情况比较复杂,它是java.lang.Object类中的一个方式。因为java中全部的类都默认继承于Object,故此,全部的类都拥有这个方式。
在Object类源码中是这样写的。
public boolean equals(Object obj) {
return (this == obj);
}
他同样使用==号进行内存地点位置的比较。但是,不少java类中都重写了这个方式,例如String。
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;
}
String里的方式,假设==号比较不相等,还会进行一下值的比较。
故此,equals方式详细的作用要看现目前的那个类是如何达到重写父类中该方式的。假设没有重写该方式,既然如此那,他和==号等价。
1、java中equals和==的区别 值类型是存储在内存中的堆栈(简称栈),而引用类型的变量在栈中只是存储引用类型变量的地点位置,而其本身则存储在堆中。
2、==操作比较的是两个变量的值是不是相等,针对引用型变量表示的是两个变量在堆中存储的地点位置是不是一样,即栈中的主要内容是不是一样。
3、equals操作表示的两个变量是不是是对同一个对象的引用,即堆中的主要内容是不是一样。
4、==比较的是2个对象的地点位置,而equals比较的是2个对象的主要内容,明显,当equals为true时,==未必为true。
请采纳,谢谢
1、java中equals和==的区别 值类型是存储在内存中的堆栈(简称栈),而引用类型的变量在栈中只是存储引用类型变量的地点位置,而其本身则存储在堆中。
2、==操作比较的是两个变量的值是不是相等,针对引用型变量表示的是两个变量在堆中存储的地点位置是不是一样,即栈中的主要内容是不是一样。
3、equals操作表示的两个变量是不是是对同一个对象的引用,即堆中的主要内容是不是一样。
4、==比较的是2个对象的地点位置,而equals比较的是2个对象的主要内容,明显,当equals为true时,==未必为true。
equals()是object的方式,故此,只是合适对象,不合适于基本类型,equals()默认是用==比较两个对象的内存地点位置,假设想要比较两个对象的主要内容,要重写equals()方式才可。equal:是用来比较两个对象内部的主要内容是不是相等的,因为全部的类都是继承自java.lang.Object类的,故此,假设没有对该方式进行覆盖,调用的也还是是Object类中的方式,而Object中的equal方式返回的反而==的判断,因为这个原因,假设在没有进行该方式的覆盖后,调用该方式是没有任何意义的。
以上就是本文简述"=="和"equals"的区别,equals与equal的区别的全部内容
本文链接:https://www.china-share.com/xueli/202306061542153.html
发布于:华宇考试网(https://www.china-share.com/)>>> 成绩查询栏目(https://www.china-share.com/zhuanshengben/hainan/chengjichaxun/)
投稿人:网友投稿
说明:因政策和内容的变化,上文内容可供参考,终以官方公告内容为准!
声明:该文观点仅代表作者本人,华宇考试网系信息发布平台,仅提供信息存储空间服务。对内容有建议或侵权投诉请联系邮箱:e8548113@foxmail.com
关注本站了解更多关于文简述"=="和"equals"的区别,equals与equal的区别和成绩查询的相关信息。
简述"=="和"equals"的区别? 解释一下==号,他比较的是一个对象在内存中的地点位置值, 例如2个字符串对象 String s1 = new String("str"); String s2 = new String("str"); 假设用==号比较,会返回false,因为创建了两个对象,他们在内存中地点位置...
2023-06-06
黄淮学院专升本靠谱吗? 靠谱,不管是公办还民办学历都是国家承认的。 2023河南医学类专升本院校有什么? 1.安阳学院 2.河南开封科技传媒学院 3.河南理工大学 4.河南牧业经济学院 5.河南中医药大学 6.黄河科技学院 7.黄淮学院...
2023-06-05
fellow,buddy,pal,dude当中的区别? fellow这个词含有两个人存在某些共同点的意思,如同事、境遇一样等.故此,产生fellow时,大多数情况下可以判断双方必有互通之处. fellow在做“guy、man”解释时,也会受到上面说的意思的影响,例如可能会...
2023-06-01
gradeclass的大小排列? 假设我们要用英语表达三年级一班,应该说Class One Grade Three。这当中班级class应该放在前面而grade年级则应该放在后面。 在英语中表示类似的概念或者地址位置一般都是把较小的单位放在前面。相对grade来说...
2023-06-01
2015年我省高职专科升本科招生考试评卷及分数统计工作已顺利结束,现将成绩上网供考生查询。凡参加2015年海南省高职专科升本科招生考试的考生,通下方的登录窗口登录查询,按提示输入自己的姓名及身份证号,就可查询自己的...
2020-12-21