日期:2014-05-20  浏览次数:20719 次

JAVA中==和equals的区别
JAVA中==和equals的区别 最好搞个例子出来。谢谢了!!!

------解决方案--------------------
the former is to judge if the two object references are identical.
the latter is mainly to make out whether they are equal on content for both primitive type and reference type. Sure, the original Object.equal has the same function as "==".

前者比引用 后者一般比内容 Object的原生方法equal功能同“==”
------解决方案--------------------
equals 是用来比较对象的。。。== 用来单纯比较值的。。。。
------解决方案--------------------
简单的说吧==比较的是两个对象的栈的数据。而equals比较的是堆中的数据。
比如:int a=1;int b=2;判断a==b就为假因为a存在栈中的数据为1,b存在栈中的数据为2。不相等。
若是引用类型对象比较,就是比较他们的存在堆中的引用地址是否相同。
如:Object ob1=new Object(); Object ob2=ob1;这时equals比较两个对象就是相同的。注意:ob2=ob1。所以引用同一个地址。
而 Object ob3=new Object(); obj1.equals(obj3)就为假。因为开辟了另一个新空间。
------解决方案--------------------
==是用来比较是不是同一个对象,同一个引用,equals是比较值的~不知道这样说对不对
------解决方案--------------------
呵呵,==是比较两个路牌上写的地址是不是指向同一个快餐店, equals比较的是两个路牌指向的两个快餐店(无论是指向同一个还是两个不同的)是不是都是肯德基:D
------解决方案--------------------
以上回答都不完全正确,==是比较值的相等与否的,这个值即是变量在桟里面的内容,可能包括基本数据类型的值或引用数据类型的堆地址。而equels是对象的方法,默认情况返回的就是==的结果。但是对于引用类型这样的结果显然毫无意义,所以你需要覆盖equels方法来比较引用类型的相等性。最典型的参考是java String对象和一些集合对象。
------解决方案--------------------
探讨
简单的说吧==比较的是两个对象的栈的数据。而equals比较的是堆中的数据。
比如:int a=1;int b=2;判断a==b就为假因为a存在栈中的数据为1,b存在栈中的数据为2。不相等。
若是引用类型对象比较,就是比较他们的存在堆中的引用地址是否相同。
如:Object ob1=new Object(); Object ob2=ob1;这时equals比较两个对象就是相同的。注意:ob2=ob1。所以引用同一个地址。
而 Object ob3=new Object(); obj1.equals(obj3)就为假。…