When you serialize any object using serializable, apart from fields, all objects that belong to object map and that can be reached using instance variable will also be serialized.
- If you have Employee class and its superclass is the person then it will serialize all superclass objects (such as the person) until it reaches "Object" class.
- Similarly, if Employee has an instance variable of address class then it will serialize whole object map of address also.
Do you really want this much overhead when all you want to serialize is empId and empName.
JVM uses reflection when you use serializable which is quite slow.
While serializing, information about class description which includes the description of its superclass and instance variable associated with that class also get stored in the stream. Again this is also a performance issue.