Serialization can be a tricky business. It is powerful but brings many headaches. For example, XML is the most widely used serialization mechanism, but XML is too verbose and text-based to be practical for some scenarios. You need to create your own binary format. Or you may have to implement custom logic to deal with the existing binary formats, such as Java Archive (JAR) and Java Object Serialization (JOS) . At some point, you will find a binary format that you think is perfect, only to find it was made by someone else and you might need to implement that someone else's custom logic.
Externalizable gives you a much better control over serialization process. It allows you to fully specify how your classes and fields are serialized as a binary format. It also provides several security features to protect your custom binary format, like Strong Encryption , Session Protection , Transport Authentication , and Transparent Caching . If you are familiar with other externalizable implementations, such as GS2, you will notice that they all are very similar. But Externalizable 827ec27edc