Difference between Serialization and Externalization can be described with the help of following points:
Serialization | Externalizable |
Serializable is a marker interface. | Externalizable is not a marker interface. Externalizable interface contains two methods writeExternal() and readExternal(). |
Serializable is for default serialization. | The purpose of Externalizable is for customized serialization. |
In case of serialization, the responsibility of serialization is on JVM. | Externalization provides control of serialization to the programmer. |
In case of serialization, complete object is saved. It is not possible to save part of the object. | With externalization, it is possible to serialize part of an object. |
Performance is low. | Performance is relatively high in comparison to serialization because programmer has the control to save selected properties of object. |
It is not required to have a no-arg constructor in a Serializable. | It is required for an Externalizable class to have a public no-arg constructor. |
transient keyword affects serialization. | transient keyword has not role to play in Externalization. |