Kryo
Java binary serialization and cloning, fast, efficient, automatic
... of the object is not known and the object could be null. Besides methods to read and write objects, the Kryo class provides a way to register serializers, reads and writes class identifiers efficiently, handles null objects for serializers that can't accept nulls, and handles reading and writing object references (if enabled). This allows serializers to focus on their serialization tasks.