序列化和反序列化

概念

序列化:将内存里面的对象转换成字节序列,方便持久化到硬盘和进行网络传输。
反序列化:将接收到的,或者磁盘中的字节序列转换成内存中的对象

java中实现序列化

想要在java代码中实现序列化,只需要实现Serializable接口就可以
类通过实现java.io.Serializable接口启用其序列化功能,没有实现这个接口的类没有办法序列化和反序列化,序列化接口没有方法和字段,仅用于标识可序列化的语义。

对象输出流:ObjectOutputStream,它的writeObject(Object obj)方法可以将obj对象进行序列化,把得到的字节序列写到一个目标输出流中。
对象输入流:ObjectInputStream,它的readObject(Object obj)方法可以从一个源输入流中获取字节序列,然后把它们反序列化成一个对象,并将其返回。

Hadoop中的序列化和反序列化

Hadoop中提供了常用的数据类型对应的Hadoop数据序列化类型
但是在开发过程中,常用的基本数据类型不能满足使用需求,往往要自己写一些自定义序列化对象。
方法
1、实现Writable接口
2、重写序列化方法write
3、重写反序列化方法readFields
注意:如果这个自定义序列化对象要放在key中传输,要实现WritableComparable接口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值