Table of Contents
1System Architecture
- 1.1Overview
- 1.2Writing to an Object Stream
- 1.3Reading from an Object Stream
- 1.4Object Streams as Containers
- 1.5Defining Serializable Fields for a Class
- 1.6Documenting Serializable Fields and Data for a Class
- 1.7Accessing Serializable Fields of a Class
- 1.8The ObjectOutput Interface
- 1.9The ObjectInput Interface
- 1.10The Serializable Interface
- 1.11The Externalizable Interface
- 1.12Serialization of Enum Constants
- 1.13Serialization of Records
- 1.14Circular References
- 1.15Protecting Sensitive Information
2Object Output Classes
- 2.1The ObjectOutputStream Class
- 2.2The ObjectOutputStream.PutField Class
- 2.3The writeObject Method
- 2.4The writeExternal Method
- 2.5The writeReplace Method
- 2.6The useProtocolVersion Method
3Object Input Classes
- 3.1The ObjectInputStream Class
- 3.2The ObjectInputStream.GetField Class
- 3.3The ObjectInputValidation Interface
- 3.4The readObject Method
- 3.5The readObjectNoData Method
- 3.6The readExternal Method
- 3.7The readResolve Method
4Class Descriptors
- 4.1The ObjectStreamClass Class
- 4.2Dynamic Proxy Class Descriptors
- 4.3Serialized Form
- 4.4The ObjectStreamField Class
- 4.5Inspecting Serializable Classes
- 4.6Stream Unique Identifiers
5Versioning of Serializable Objects
- 5.1Overview
- 5.2Goals
- 5.3Assumptions
- 5.4Who's Responsible for Versioning of Streams
- 5.5Compatible Java Type Evolution
- 5.6Type Changes Affecting Serialization
- 5.6.1Incompatible Changes
- 5.6.2Compatible Changes