I skimmed over the relavent area of the Serialization specification (or what I thought to be relavent) and I couldn't find out if Serialization / object writing "cascades" (I only saw it mention this concept with respect to super/subclassing).
Say I have an object X which has an ArrayList or Hashtable containing multiple object Y, and each object Y has another ArrayList / Hashtable containing object Z...
If I call and writeObject on object X, will it write the full contents (in general) of each object Y, and subsequently each object Z (assuming X, Y, and Z all implement Serializable)?
Yes. It's right there in [1.1|http://java.sun.com/javase/6/docs/platform/serialization/spec/serial-arch.html#6428]: 'When an object is stored, all of the objects that are reachable from that object are stored as well.'