一次面试问的hashcode和equals方法

首先hashcode和equlas都是继承于object,其次hashcode和equlas都是比较两个对象是否相等,从源码上看,如果没有重写equlas方法则比较的是地址值,即其引用,比如Interger,String都重写了equlas的方法则其比较的是内容,hashcode在API上定义是返回该对象的哈希码值返回的是int类型,出现的比较多的地方在集合set中,集合set规定不能有重复的对象出现,先是比较其hashcode值,如果hashcode不同则其就可以放进去,如果hashcode相同则再比较其equals,java规定如果equlas相同则hashcode一定相同,如果hashcode相同则equlas不一定相同,如果hashcode不同则equlas一定不同

原文地址:https://www.cnblogs.com/wyc520/p/5277474.html