Tôi đang xem nguồn của HashMap.Tại sao bảng băm HashMap được đánh dấu là thoáng qua mặc dù lớp được nối tiếp
A HashMap
implements Serializable
.
Ok điều này là để nó có thể được phân biệt/truyền như một đối tượng.
Nhưng tôi thấy rằng chính Hashtable được đánh dấu là transient
.
Tôi không nhận được thông tin này.Nếu bạn đánh dấu là tạm thời, điều này có nghĩa là không phải là được đăng theo thứ tự không?
Nhưng tất cả dữ liệu nằm trong bảng. Vậy tại sao lại là transient
?
Có lẽ tôi đang bối rối về cách Serializable
hoạt động?
Tôi thấy phương pháp này.Tôi đã tự hỏi tại sao nó làm như vậy? Có lý do gì không? – Cratylus
Mã băm của các đối tượng có thể thay đổi giữa các lần chạy chương trình - ví dụ, nếu hashCode() sử dụng thực thi Object mặc định - vì vậy bảng băm phải được xây dựng lại trong quá trình deserialization. –