Java对象的序列化和反序列化
一.什么是序列化和反序列化
序列化:把对象转换为字节序列
反序列化:把字节序列转换为对象
所谓java对象序列化就是将对象的状态转换成字节流,以后可以通过这些值再生成相同状态的对象,对象序列化是对象持久化的一种实现方法,它是将一个对象的属性和方法转化为一种序列化的格式以用于存储和传输,反序列化就是根据这些保存的信息重建对象的过程。
序列化有好几种方式,java自己的序列化,thrift,protobuf,json其实也算是一种序列化。
序列化是为了传输数据,数据在网络上传输都是二进制的,比如我要传输的数据是一本书,包括 书名,价格,作者等,不能直接将这些String啊int等类型直接在网络上传输,要转成相应的二进制数据。你当然可以自己把这些数据都转成字节流在网络上传输。对应的,也要一个字节一个字节的都出来在转成你要的数据,这就是序列化与反序列化。说白了和你自己实现了一个序列化的协议。