什么是序列化
序列化是一种处理对象流的机制——把内存中的Java对象转换成二进制流。
对象流化后,将对象内容保存在磁盘文件中或作为数据流进行网络传输。
序列化是将对象的状态信息转换为可以存储或传输的形式的过程。
概念
序列化 就是将内存中的对象转换为字节序列,方便持久化到磁盘或者网络传输。
反序列化 就是将字节序列转换为内存中的对象可以是文件中的,也可以是网络传输过来的。
我们将对象转换成公共的格式叫做序列化,将公共的格式转换成对象叫做反序列化。保存到磁盘只是序列化的一种表现形式。
作用
对象转换为有序字节流,方便在网络上传输和保存在本地文件中。在传递和保存对象时。保证对象的完整性和可传递性。
根据字节流中保存的对象状态及描述信息,通过反序列化重建对象。
字节流中保存对象。
对象的序列化和反序列化主要就是使用ObjectOutputStream 和 ObjectInputStream
步骤
对象序列化过程可以分为两步:
第一: 将对象转换为字节数组
第二: 将字节数组存储到磁盘
json/xml的数据传递:
在数据传输(也可称为网络传输)前,先通过序列化工具类将Java对象序列化为json/xml文件。
在数据传输(也可称为网络传输)后,再将json/xml文件反序列化为对应语言的对象
网络传输过程
网络里数据是通过字节流形式传输的,需要用序列化的方式将j对象转化为字节流化,网络对端接受端,拿到收到的字节再反序列化出来得到对象。
为什么要序列化
为什么需要序列化,