1、一般实现serializable接口的时候都会生成一个序列化版本号,这个版本号的作用是,比如说,在最开始的时候你存进去了一个版本号为
1l的对象,改过代码后你的版本号已经变成了2l,但是缓存并没有清理,这时候你在取出此类的对象并强制转化的时候就会抛出一个异常
主要就是因为版本号不相符的原因。所以如果序列化的对象能够反序列化,他们的版本号必须是一样的
2 序列化的时候私有成员是不受保护的,除非将成员声明为transientde
3.在序列化的时候类静态成员是不会被序列化的,因为序列化的只是某个对象,而不是某个类
4.如果多次序列化同一个对象,比如序列化两次,那么存储序列化的空间并不会加倍,而只是增加很少的几个字节,java序列化机制会自动处理
序列化时引用的问题.
时间: 2024-10-10 21:02:58