Stavo cercando la fonte di HashMap.Perché la tabella hash di HashMap è contrassegnata come transitoria sebbene la classe sia serializzabile
A HashMap
implements Serializable
.
Ok questo è così che può essere peristato/trasmesso come oggetto.
Ma vedo che la tabella stessa è contrassegnata come transient
.
Non capisco. Se lo contrassegni come transitorio, non significa che dovrebbe essere non essere serializzato?
Ma tutti i dati sono nella tabella. Perché è transient
?
Forse sono confuso su come funziona Serializable
?
Vedo questi metodi. Mi chiedevo perché fa così? C'è una ragione? – Cratylus
Il codice hash degli oggetti può cambiare tra le esecuzioni del programma, ad esempio se hashCode() utilizza l'implementazione Object predefinita, quindi la tabella hash deve essere ricostruita durante la deserializzazione. –