equals和==的区别==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同.equals操作表示的两个变量是否是对同一个对象的引

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/26 14:22:54

equals和==的区别==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同.equals操作表示的两个变量是否是对同一个对象的引
equals和==的区别
==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同.
equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同.

“在堆中存储的地址是否相同”和“堆中的内容是否相同”有什么区别?总感觉是一个样的阿.

equals和==的区别==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同.equals操作表示的两个变量是否是对同一个对象的引
解释一下==号,他比较的是一个对象在内存中的地址值,
比如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方法具体的作用要看当前的那个类是如何实现重写父类中该方法的.如果没有重写该方法,那么他和==号等价.

equals和==的区别==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同.equals操作表示的两个变量是否是对同一个对象的引 equals()和==的区别?在判断值上和判断对象上 ==和equals方法究竟有什么区别? Y.equals(answer)和answer!=Y有什么区别? Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用==还是equals()?它们有何区别? Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用==还是equals()?它们有何区别? Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别? object.equals(null)和object==null有什么区别刚有个程序 用object.equals(null)就有错用object==null就好了String a;String a=null;是一样的吗将a声明为null就可以编译了;String a=null也算是初始化吗 java,String s=hello;和char[] c={'h','e','l','l','o'};的equals为什么为false? 在JAVA中,==和equals()有何不同?reference如何翻译?对象的reference指什么? Map判断时的区别if(map.get(COL_SUC_RATE)!=null )和if(!map.get(COL_SUC_RATE).toString())和if(!map.get(COL_SUC_RATE).equals()) 解释一下这些分别是在判断什么?区别是什么?上面写错了:if(map.get(COL_SUC_RATE)!=null (23-3)/5= 英语怎么说不要用then 就是the subtraction …… divides 5 equals这种!Twenty-three minus three divided by five equals(is) four这种应该是23减去 3除以5的商 if(str_subID!=null && .equals(str_subID))是什么意思同题 15.下面程序段的编译和运行的结果是什么?( ).String s1 = Test;String s2 = new String( Test);if (s1==s2) System.out.println(Same);if (s1.equals(s2)) System.out.println(Equals);A.& if(action =null && again .equals(action)) 1.详解这条JAVA语句; 2.详解again意思和作用 50 added to 50 equals 100.add为什么是被动语态啊?不太清楚啊 是50+50=100的意思么 那为什么要用被动语态呢 麻烦啦 英语数学中等于的表达是怎么样的?等于究竟是用is 或 equals 还是equals to “比较”是修辞手法吗“比较”是修辞手法吗?“比较”和“作比较”的区别。