我有一个像这样的类构造函数:
public JavoImageCorrectedDataHeader()
{
ByteBuffer buffer = ByteBuffer.allocate(this.size());
buffer.order(java.nio.ByteOrder.LITTLE_ENDIAN);
setByteBuffer(buffer, 0);
System.out.println("buffer.hasCode=" + buffer.hashCode());
}
在我的其他类(class)中,我通过使用以下方法在不同的位置和时间创建了上述类(class)的许多实例:
new JavoImageCorrectedDataHeader()
然后,我希望它将为他们打印出不同的hashCode。但是我实际上看到打印出了相同的 hashCode :
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
我一定想念有关如何使用ByteBuffer的知识。
最佳答案
从javadoc:
如果您没有填充ByteBuffers
,或者没有用相同的东西填充它们,则哈希码将是相同的。
关于java - 为什么ByteBuffers hashCodes相同?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11089890/