The basics: Serialization relies mostly on 'default' mechanisms for getting data into a serialized format, and provides some means over modifying that behavior. Externalization allows you to completely customize the serialization process - it provides no default serialization mechanism, so you are responsible for, but also have complete control over, every value which gets externalized/serialized.