In some types of applications you have to write the code to serialize objects, but in many cases serialization is performed behind the scenes by various server-side containers.
These are some of the typical uses of serialization:
• To persist data for future use.
• To send data to a remote computer using such client/server Java technologies as RMI
• To exchange data between applets and servlets.
• To store user session in Web applications.
• To activate/passivate enterprise java beans.
• To send objects between the servers in a cluster