【学习心得】java中“==”和默认“equals()”的区别

来源:互联网 发布:imagesloaded.min.js 编辑:程序博客网 时间:2024/06/05 14:07

---------------------- android培训、java培训、期待与您交流! ----------------------

           java语言中用来进行等价判断的是“==”和默认(没有被重写)的“equals()”方法,在平时的使用中的我们有时会模糊他们之间的差别, 

其实呢,我们只需要记住两点就可以判别它们之间的区别——①对于基本数据类型,两者进行等价判断时判断的是基本类型的值,只要值相等,那么判断

结果就为真;②对于引用型数据,“==”比较的是对象的hashcode编码,也就是在内存中的位置,即是否为同一个对象,如果是同一个则为真;而默认的

“equals()”则在比较一些特定的引用类型上(如String,File,Date以及封装类型)数据时,只要两个对象的类型相同且内容相等(对象各自封转的属性值对应相等),

那么该方法就判断为真。所以,我们在使用的时候就要考虑我们要比较的是内容相同还是对象相同。正如张孝祥老师讲解反射时比较String字节码对象时,判断是否为同一个字节码用“==”,而不用“equals()”。但是我们一但重写了“equals()”,改变了它的判断标准,那么我们就要根据具体情况来看了。

---------------------- android培训、java培训、期待与您交流! ---------------------- 详细请查看:http://edu.csdn.net/heima
原创粉丝点击