Both Serializable and Externalizable used for Serialization. Externalizable extends from Serializable. Why java has Externalizable for Serialization (looks duplicate interface)?
Externalizable expects the user to define the write and read methods themselves. Serializable provides write and read methods.
Externalizable lets the programmer control the Serialization process.
This is a pretty good summary of the difference:
[url]http://geekexplains.blogspot.com/2008/06/diff-between-externalizable-and.html
[/url]
They give the example of programatically controlling which fields of your object get serialized