我有一个奇怪的时刻.
ArrayList a = new ArrayList();
a.add(new Socket());
a.add(new Thread());
a.add("three");
a.add(a);
a.add(new Object());
for(Object output : a) {
System.out.println(output);
}
输出:
Socket[unconnected]
Thread[Thread-0,5,main]
three
[Socket[unconnected], Thread[Thread-0,5,main], three, (this Collection)]
java.lang.Object@615e7597
每次运行它时,新对象总是给出相同的Hex字符串(Java doc Integer.toHexString(hashCode())),为什么会这样?为什么每次都不会产生不同的字符串?或者它是否重复使用同一个对象,因为它可以?
编辑:我尝试了几次执行Java应用程序.