Estaba viendo la fuente de HashMap.¿Por qué la tabla hash de HashMap está marcada como transitoria aunque la clase es serializable?
A HashMap
implements Serializable
.
Ok esto es para que pueda ser peristed/transmitido como un objeto.
Pero veo que la tabla hash misma está marcada como transient
.
No entiendo esto. Si lo marca como transitorio, ¿no significa que debería no ser serializado?
Pero todos los datos están en la tabla. Entonces, ¿por qué es transient
?
Quizás estoy confundido sobre cómo funciona Serializable
?
Veo estos métodos. Me preguntaba por qué lo hace de esa manera? ¿Hay alguna razón? – Cratylus
El código hash de los objetos puede cambiar entre ejecuciones del programa; por ejemplo, si hashCode() usa la implementación predeterminada de Object, por lo que la tabla hash debe reconstruirse durante la deserialización. –