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

古老得问题==和equlas问题
以前貌似   把这个弄懂了   也觉得自己不会能混了     但是前两天看书发现   有些书上好象有出入
                          我看有得书上些得是     ==比较得是内存地址;
                                                                  euqals比较得是值;
                                                                但是有的好象些的是反的;
                                                                                      郁闷|:

              请高手明确得指点下   ==   和   equals得区别;  


------解决方案--------------------
==是判断两个变量或实例是不是指向同一个内存空间
equals是判断两个变量或实例所指向的内存空间的值是不是相同
------解决方案--------------------
分成基本数据和对象讨论
基本数据 对象
== 值 引用
equals 无 值
基本数据是存储在堆栈中
对象存储在动态堆中
比较的时候也就不一样勒
MSN:reinhardt_49@163.com 还有问题加我
------解决方案--------------------
Object类中的equals和==效果一样,比较的是对象的引用,但是SUN公司在诸如String Integer...类中重写了equals,使它比较的是对象的值,所以在有些时候equals比较的是引用,有些时候比较的是值,如果你想调用equals方法的对象中的equals方法SUN没重写,那么对不起,你得自己重写,怎样判断SUN有没有重写呢?很简单,看JAVA的源码,也可以结合API文档
------解决方案--------------------
==比较得是内存地址;
euqals比较得是值;
------解决方案--------------------
== 比较的是内存地址 相当与指针比较(当然java中没有指针这一说法);
euqals 比较的是值,但是用户自己是可以重写的;
------解决方案--------------------
同意magic256()
------解决方案--------------------
这个问题还真忘了,复习了
------解决方案--------------------
基本数据类型是放到堆区,对象数据类型是放到栈区。
==是比较两个数据的内存地址。
equals是比较两个对象的hashcode。