Tôi có một constructor lớp như thế này:tại sao ByteBuffers hashCodes giống nhau?
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());
}
Trong các lớp học khác của tôi, tôi có thể tạo nhiều trường hợp của lớp trên tại các địa điểm và thời gian khác nhau bằng cách sử dụng
new JavoImageCorrectedDataHeader()
Sau đó, tôi hy vọng nó sẽ in ra hashCode khác nhau cho chúng. nhưng tôi thực sự thấy cùng hashCode được in ra:
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
tôi phải bỏ lỡ điều gì đó về làm thế nào để sử dụng ByteBuffer.
http://docs.oracle.com/javase/1.4.2/docs/api/java/nio/ByteBuffer.html#hashCode() - 'ByteBuffer.hashCode' phụ thuộc vào nội dung còn lại trong bộ đệm. – Erik
Ngay cả khi hai đối tượng có cùng một 'hashCode', điều đó ngụ ý không có gì về sự giống nhau hoặc bình đẳng của chúng. –
@Erik xin vui lòng không tham khảo tài liệu cũ, thay vì Java 6 hoặc 7. Đây là tài liệu thực tế của [ByteBuffer] (http://docs.oracle.com/javase/6/docs/api/java/nio/ ByteBuffer.html) –