Java implements object serialization by using reflection.

Writing process:

    OutputStream out= ... ; // any output stream
    ObjectOutputStream objOut= new ObjectOutputStream(out);
    objOut.writeInt(i);        // throws IOException
    objOut.writeObject(space); // throws IOException
    ...

- 7 -