基本概述
1.Object : 是类层次结构的根类,所有的类都显式或隐式的继承了该类。包括数组都是该类的子类。
2.常用方法:
① getClass() 返回调用该方法的对象运行时类。
② hashCode() 返回对象的哈希码值 。实质是由对象的内存地址经过哈希算法 算出来的整数值
object类的equals方法
1.Object类的equals方法:
① 默认 Object类的equals方法 ,判断的是对象与对象是否相等。等价于 对象与对象之间通过==进行判断。
2.==号对于对象来说,判断的对象的内存地址值。对于基本数据类型 ,判断是两个基本数据类型的值。
重写equals方法为什么要重写hashcode方法
hashcode方法是根据两个对象的地址生成哈希码
Java对于equals方法和hashCode方法的规定是如果两个对象equals()方法相等,则hashCode值一定会相同,如果两个对象的hashCode值相同,则它们的equals()方法不一定相等。
hashCode()的作用是为了提高在散列结构(HashMap,HashTable或HashSet等)存储中查找的效率,在线性表中没有作用。首先存储在集合中的对象的内存地址根据哈希算法生成哈希码值,这个哈希码值是对象在集合中存储位置的索引,一个索引位置可能有很多对象,提高效率指的是比较集合中对象数据时,先比较哈希码值,如果哈希码值相等,对象的值可能相等,如果hashcode都不相等,就没有必要在进行比较对象的值
equals 与== 的区别与联系
①==用来判断数据是否相等,对于基本数据类型来说,判断值是否相等。对于对象来说,判断的是内存地址值。
② equals用来判断对象是否相等的,不能判断基本数据类型。默认Object类的equals方法,与==等价的,可以通过重写该方法