JDK1.4就加入了这个map类型,它是使用 == 判断相等,而不是hashmap的equals方法判断相等。
那么,它有什么应用场合呢?
当然是需要我们必须使用地址相等来判断值相等的场合,以及我们确定只要其地址不相等,则其equals方法的结果也必定不相等的场合。
例如:ThreadLocal类
这个类的原理是根据thread从其内部map中获取线程独立的值,那么,我们使用只判断相等的IdentityHashMap,就会比用HashMap要快些。
然而,当我去看ThreadLocal源码时,发现丫丧心病狂的用了一个数组,而不是容器类来做Map的底层实现,还是套路不够深啊!