Java的序列化和反序列化

2021-03-15  本文已影响0人  雅阁驸马

From:https://blog.csdn.net/qq_27093465/article/details/78544505

https://www.liaoxuefeng.com/wiki/1252599548343744/1298366845681698

1. 为什么要序列化和反序列化

这个很简单,为了保存和传输Object

2. 怎么实现序列化和反序列化

让对象继承Serializable接口。类似Serializable这样的空接口被称为“标记接口”

注意:

3. serialVersionUID的作用

其实它就是要给版本号的概念。对象的成员变量修改了这个版本号就应该变。

我们经常能看到,在要被序列化的对象里会加上serialVersionUID。其实不加也可以,java编译器会根据你的这个对象的属性自动生成一个serialVersionUID

private static final long serialVersionUID = 1L;

但是建议最好还是加上。为什么呢?因为不同的编译器有可能生成serialVersionUID的方式不一样。导致你序列化时serialVersionUID是123456L,反序列化时其他的java编译器生成的serialVersionUID是64789L。这样反序列化时serialVersionUID对不上就会报InvalidClassException异常

4. 总结:

上一篇 下一篇

猜你喜欢

热点阅读