序列化和反序列化记录下

序列化:把一个结构化数据(对象)变成一个二进制的bit流(可以把这个bit流保存到文件,或者通过网络传输)
反序列化:把二进制的bit流还原会原来的对象
序列化和反序列化的最大目的:就是为了让对象能通过网络传输/能够在文件中保存
序列化和反序列化的过程中要保证"信息不丢失",如果丢失了,就无法还原出一摸一样的对象了

序列化和反序列化不是同一个程序,这样的话,如果程序1有一个student类,程序2有一个student类,但是这两个student中的某个字段不一样
那么此时进行序列化反序列化就可能会出现问题

这个变量的值,不需要用户手动设置
编译器会在编译的时候自动生成这个值(根据类的内容来生成),类的代码出现变化的时候,生成的UID就不一样
反序列化程序读取文件中的uid字段,和自己的类的uid进行比较,如果发现uid不匹配,就直接报错而不进行反序列化了
在发序列化的时候,就可以检查这个uid的值,是否符合预期~通过这个值,就能判断当前类的代码是否一致

java对象序列化
1.JSON序列化
2.XML
3.Protostuff
4.Hession
5.Dubbo Serialization
6.FST
7.自定义协议进行序列化 (很简单,也很常见)

Java自带的序列化的方式
借助流对象来完成的
ObjectInputStream 负责反序列化
ObjectOutputStream 负责序列化
借助这两类就可以完成具体的序列化和反序列化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值