Used to annotate a no-argument constructor. Serializable objects whose highest parent is not Object java.lang.Object must have one. Other objects do not require it.
Advanced use: If one is present (whether it is necessary or not), the deserializer will use it. This has the side-effect of calling the constructors and super-object(s) constructors, therefore initializing instance fields to their default state.