chapter04_Java基础知识_14_序列化和反序列化

  • (1) 所有要实现序列化的类都要实现 Serializable接口,然后使用一个输出流来构造一个 ObjectOutputStream对象,然后调用writeObject()方法实现序列化

    (2) 若基类可以序列化,则它的派生类也可以序列化

    (3) 类的static修饰的变量、transient修饰的变量不会被序列化

    (4) 使用readObject()方法可以实现反序列化,但是static和transient变量不会读上来,只能是默认“零值”

    (5) serialVersionUID的作用

    1° 每个类都有一个特定的 serialVersionUID, 在反序列化的过程中用来判定类的兼容性,不兼容时会抛出异常

    其实就是反序列化时对比一下字节流中的serialVersionUID和本地对象的serialVersionUID是否兼容,不兼容就报错

    2° 良好的编程习惯是__显示指定serialVersionUID__

    (6) 需要使用(反)序列化的场景

    1° 网络传输、持久化到数据库或文件

    2° 深复制一个对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值