方法介绍
1.getClass()
final,native方法,获得运行时类型。
2.hashCode()
hashCode()方法主要用于hash表,比如HashMap,当集合要添加元素时,大致按如下步骤:
- 先调用该元素的hashCode()方法获取hashCode,hashCode对数组取模定位到它应该放置的物理位置
- 如果这个位置上没有元素,就直接存储在这个位置上
- 如果这个位置上已经有元素,就调用equals()方法进行比较,相同的话就更新,不相同的话放到链表后面
所以重写equals()方法时,也必须重写hashCode()方法。如果不这样做,就会违反Object.hashCode()的规范,导致无法结合所有基于hash的集合一起正常运作,这样的集合包括HashMap、HashSet和Hashtable
那为什么不直接使用equals()进行操作呢?如果只使用equals(),意味着需要迭代整个集合进行比较操作,如果集合中有