serialization web page at http://java.sun.com/products/jdk/1.2/docs/guide/serialization/ includes a FAQ list, sample code, and the
complete object serialization specification. The specification covers
serialization as implemented in Java 1.2, which is mostly
upward-compatible with the Java 1.1 serialization discussed in Chapter 11. An earlier prebeta specification that covers
Java 1.0.2 serialization is posted at http://java.sun.com/products/jdk/rmi/doc/serial-spec/serialTOC.doc.html.
A formal specification of Java 1.1 serialization was never published.
However, the Java 1.2 spec is mostly the same, with the addition of a
few extra features like the
Sun’s formal specification for object serialization is not
always clear, especially when it comes to motivating the more
esoteric areas of serialization like
ObjectInputValidation. However, it is complete and
does add some to what I discussed in Chapter 11,
including the binary protocol for serialized objects and
Object serialization was originally developed to support Remote Method Invocation (RMI), an architecture that allows Java objects in one virtual machine to invoke methods on objects in another virtual machine, possibly running on a different computer somewhere else on the Internet. RMI is discussed briefly in Chapter 14 of my Java Network Programming and at great length in Jim Farley’s Java Distributed Computing (O’Reilly & Associates, 1998, ISBN 1-56592-206-9).