CONTENTS | PREV | NEXT | Java Object Serialization Specification |
Object Serialization produces and consumes a stream of bytes that contain one or more primitives and objects. The objects written to the stream, in turn, refer to other objects, which are also represented in the stream. Object Serialization produces just one stream format that encodes and stores the contained objects.Each object that acts as a container implements an interface which allows primitives and objects to be stored in or retrieved from it. These interfaces are the
ObjectOutput
andObjectInput
interfaces which:
Each object which is to be stored in a stream must explicitly allow itself to be stored and must implement the protocols needed to save and restore its state. Object Serialization defines two such protocols. The protocols allow the container to ask the object to write and read its state.To be stored in an Object Stream, each object must implement either the
Serializable
or theExternalizable
interface:
- For a
Serializable
class, Object Serialization can automatically save and restore fields of each class of an object and automatically handle classes that evolve by adding fields or supertypes. A serializable class can declare which of its fields are saved or restored, and write and read optional values and objects.- For an
Externalizable
class, Object Serialization delegates to the class complete control over its external format and how the state of the supertype(s) is saved and restored.