古老得问题==和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。