Originariamente inviato da LeleFT
1) Il SerialVersionUID viene sempre autogenerato dalla JVM. Serve solo a capire se una determinata classe che viene serializzata sia compatibile o meno con la versione della JVM che tenta di eseguirla.
La versione della JVM non centra nulla. SerialVersionUID serve per stabilire durante la deserializzazione se i dati sono compatibili con la classe. Ho una classe A, ne serializzo dei dati su db, file, dove ti pare. Successivamente modifico la classe A (es. aggiungo/tolgo variabili di istanza, ecc....) e cerco poi di deserializzare quello che ho serializzato prima. La classe è ancora compatibile?? Per questo serve SerialVersionUID.

Originariamente inviato da LeleFT
3) Esse devono prevedere un costruttore di default (vuoto)
No, questo non è un requisito. La cosa veramente importante è che le super-classi siano pure loro serializzabili oppure, se non lo sono, abbiano un costruttore no-arg.