我已经使用-agentlib:hprof=cpu=samples对我的多用途程序进行了基准测试
很惊讶在结果中找到以下行:

rank   self  accum   count trace method
   1 52.88% 52.88%    8486 300050 java.lang.Object.hashCode

我从不在程序中显式调用hashCode()。
这可能是什么原因?我如何理解这次“浪费”的来源以及它是否正常?

谢谢,
大卫

最佳答案

您很可能会非常密集地使用诸如HashMap之类的Map。

HashMap使用hashCode分发对象。如果要使用具有此数据结构的许多对象,则正确实现.equals.hashCode方法非常重要。

请参阅:有效的Java项目8:Always override hashCode when you override equals

09-10 15:30
查看更多