今天我们部门一个实习生给我写了一个接口,简单来说就是这个接口应该返回一个无重复的数组。
我请求了一下JVM的Heap直接溢出了。看了一下发现这个接口给我返回的数据有320M大小。
我问了下实习生,实习生一口咬定他用了Set来保证不会重复,但是他也不知道为什么会这么大。我瞅了一眼代码发现他用Set保存了了一个X对象数组,但是他没有给这个X对象数据写hashcode接口,也没写equal接口。所以每次往这个Set里写的时候,并没有起到去重的作用,因为Set判断相等时根据hashcode和equals。告知他后问题很快解决了。
现在的年轻人,Java基础很重要啊!
 
 
Back to Top