博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
equals与==
阅读量:6504 次
发布时间:2019-06-24

本文共 1493 字,大约阅读时间需要 4 分钟。

hot3.png

Object中equals方法默认比较对象的地址。

Object中hashCode方法默认使用对象的地址计算hashCode。

Object类的equals()方法

public boolean equals(Object obj) {    	//直接比较地址是否相等        return (this == obj);    }

Object类的hashCode()方法

//默认使用对象的地址计算hashCode    public native int hashCode();

也就是说,Object中的equals方法同 == 作用完全一样。然而在很多情况下,我们需要比较两个对象的内容时不希望使用这个默认的equals实现,例如,比较两个new出来的字符串的内容。

String a = new String("abc");	String b = new String("abc");	System.out.println(a.equals(b));
因此,String的实现中已经重写了equals()方法。实际上,大多数Java类库都实现了equals()方法,以便用来比较对象的内容,而非比较对象的地址。

String类

重写的equals()方法

public boolean equals(Object anObject) {        if (this == anObject) {            return true;        }        if (anObject instanceof String) {            String anotherString = (String) anObject;            int n = value.length;            if (n == anotherString.value.length) {                char v1[] = value;                char v2[] = anotherString.value;                int i = 0;                while (n-- != 0) {                    if (v1[i] != v2[i])                            return false;                    i++;                }                return true;            }        }        return false;    }
重写的hashCode()方法

public int hashCode() {        int h = hash;        if (h == 0 && value.length > 0) {            char val[] = value;            for (int i = 0; i < value.length; i++) {                h = 31 * h + val[i];            }            hash = h;        }        return h;    }

转载于:https://my.oschina.net/javandroid/blog/878205

你可能感兴趣的文章
本IT博客用于域名投资、互联网、资源下载等相关干货收藏和学习
查看>>
ArrayList底层实现
查看>>
Unity post processing stack(v1版本)脚本控制
查看>>
数据结构基本算法java实现
查看>>
InnoDB undo log原理之事务提交时undo page相关操作
查看>>
我的友情链接
查看>>
bug给你带来的四个好处
查看>>
Ubuntu12.04开机自动挂载windows分区
查看>>
为emp表添加主外键约束
查看>>
java中Random随机种子使用
查看>>
【2016-7-20】 Linux基础知识初识
查看>>
那些年,我们一起追的Android
查看>>
大家好
查看>>
Ubuntu 12.04 ping 响应慢
查看>>
[李景山php]每天laravel-20161107|PhpEngine.php
查看>>
CMDB学习小结
查看>>
网站SEO知识
查看>>
刚出锅的菜,还热乎呢,要趁热吃哟!
查看>>
mysql主从不同步时,怎么恢复
查看>>
我的友情链接
查看>>