这两天在写原始类型(Primitive)的HashMap,用于提高HashMap的效率。又温故了下HashMap的源码。
想起之前有趣的代码,所以借此拿来跟大家分享下。![]()
代码如下:
public static void main(String[] args)
{
Map m = new HashMap();
Object o1 = new Integer(1);
Object o2 = new Long(1);
m.put(o1, 1);
m.put(o2, 2);
System.out.println(m.get(1));
System.out.println(m.get(Long.valueOf(1)));
System.out.println(o1.hashCode());
System.out.println(o2.hashCode());
System.out.println(m.toString());
}
在看我Debug时的图片:

断点处

debug查看内容
好了,想问大家不要去写代码,告诉我程序最后的输出是多少?
答案看附件图片4
至于为什么,请看源码:


自己看,我不多说什么,欢迎留言讨论。
本文通过一个具体的代码示例,深入探讨了Java中HashMap的工作原理及其内部实现细节,特别是不同类型对象作为键时的行为差异。
291

被折叠的 条评论
为什么被折叠?



