-
(1) 所有要实现序列化的类都要实现 Serializable接口,然后使用一个输出流来构造一个 ObjectOutputStream对象,然后调用writeObject()方法实现序列化
(2) 若基类可以序列化,则它的派生类也可以序列化
(3) 类的static修饰的变量、transient修饰的变量不会被序列化
(4) 使用readObject()方法可以实现反序列化,但是static和transient变量不会读上来,只能是默认“零值”
(5) serialVersionUID的作用
1° 每个类都有一个特定的 serialVersionUID, 在反序列化的过程中用来判定类的兼容性,不兼容时会抛出异常
其实就是反序列化时对比一下字节流中的serialVersionUID和本地对象的serialVersionUID是否兼容,不兼容就报错
2° 良好的编程习惯是__显示指定serialVersionUID__
(6) 需要使用(反)序列化的场景
1° 网络传输、持久化到数据库或文件
2° 深复制一个对象
chapter04_Java基础知识_14_序列化和反序列化
最新推荐文章于 2024-07-27 15:22:06 发布