1.
you want your Student class to do some special handling during the serialization and deserialization process, then you need to implement writeObject and readObject2. 
so.writeObject() calls stu.writeObject()
si.readObject() calls stu.readObject()