When you instantiate a new Model, the class is loaded and initialized; you set the static member variable to 17. When an object is deserialized its class is loaded and initialized unless it already is; here the class Model is already loaded and initialized so a ends up to be equal to 17. Transient members aren't saved to the stream as you could have noticed.

kind regards,

Jos

I have the stamina of a seal; I lie on the beach instead of running on it.