==和equals区别:
==:比较引用数据类型判断两个变量或实例是否指向同一个内存地址,是对内存地址进行比较,指引用是否相等,比较基本数据类型时比较值;
equals如果没用重写object中equals方法比较内存地址是否相等和==用法相同,重写object中equals方法是判断两个变量或实例所指向的内存空间的值是否相等,例如在String类型中,是对字符串的内容进行比较,指的是值是否相等。
equals和hashcode()方法关系:
equals()判断两个变量是否相等,如果相等则返回true,否则返回false。 hashcode()方法返回一个int数,在Object类中的默认实现是“将该对象的内部地址转换成一个整数返回”。如果equals()判断两个变量相等,则他们的hashcode()值也相等;如果两个变量的hashcode()值相等,则他们equals()判断不一定相等。