java为什么要实现序列化