序列化和反序列化

1.概念

序列化:把对象转为字节或者字符的过程

反序列化:把字节或者字符转为对象的过程

2.序列化应用场景

(1)网络通讯(微服务架构中,服务之间的调用Dubbo框架中的RPC调用)

(2)存储数据(文件或者缓存)

3.java中如何序列化和反序列化

(1)对象实现serializable接口

(2)添加序列化id(为反序列化提供保障)

(3)借助流对象完成序列化与反序列化

4.如何解决序列化和反序列化过程中的安全问题

(1)添加writeObejct(ObjectOutputStream out),方法对内容加密后再序列化

(2)添加readObejct(ObejctInputStream),反序列化之后再解密

5.序列化粒度控制

(1)transient(不需要序列化的属性添加该关键字)适用于少量属性不需要序列化

(2)实现Externalizable(需要序列化的属性,在重写方法(writeExternal/readExternal)中去序列化和反序列化),适用于只有少量属性需要序列化

6.序列化性能

java中序列化相对较差,底层会将元数据和数据全部序列化

借助第三方框架直降对象数据序列化提高性能(Kryo)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值