序列化讲解

https://zhuanlan.zhihu.com/p/40462507
一、序列化就是把对象转化为可传输的序列

二、序列化目的:使对象可以进行跨平台传输、网络传输
(我们跨平台传输、网络传输的数据格式是字节数组,若要使对象可以进行跨平台传输、网络传输,就需要把对象转化为字节数组,但仅仅如此还不够,因为我们没有办法把字节数组转化为之前的对象了。所以我们必须在把对象转成字节数组的时候就制定一种规则(序列化),那么我们从IO流里面读出数据的时候再以这种规则把对象还原回来(反序列化)。)

三、序列化方式:JDK(不支持跨语言)、JSON、XML、Hessian、Kryo(不支持跨语言)、Thrift、Protostuff、FST(不支持跨语言)

四、序列化技术选型关键点:
1.是否支持跨语言
2.序列化速度
3.序列化大小(若要频繁序列化,数据越小越好,不占带宽、速度快)

五、java实现序列化方式:实现Serializable接口

六、常见序列化问题
1、序列化和反序列化版本号不同:失败
(private static final long serialVersionUID=2;)
2、反序列化时新增对象属性,但版本号相同:成功
3、父类实现序列化,子类不实现序列化,子类属性反序列化正常
父类不实现序列化,子类实现序列化,父类属性不能实现反序列化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值