I'm going to nitpick about what Paul said - it depends on your definition of "object equality" and "serialization".
If you're talking about the actual object instance (which is identical in the sense of "=="), then Paul is exactly right: you need to use
Java object serialization, and only a Java client will be able to make sense out of it.
If you're talking about an object that is identical in the sense of the "equals" method, you can use other serialization methods (e.g. java.beans.XMLEncoder or the serialization used in Web Services) to get an object which acts the same way the original would have.