序列化和反序列化
作者:互联网
一、什么是序列化和反序列化?。
序列化:将内存中的对象转换成二进制流,转换成二进制流之后可以进行持久化和网络传输。简单来说就是将对象写入到IO流中。
反序列化:将二进制流的数据转换成对象。简单来说就是从IO流中恢复对象。
序列化机制允许将实现序列化的Java对象转换位字节序列,这些字节序列可以保存在磁盘上,或通过网络传输,以达到以后恢复成原来的对象。序列化机制使得对象可以脱离程序的运行而独立存在。
二、为什么需要序列化?
主要有两个原因:1、持久化 2、网络传输
持久化:
因为对象存储在JVM中堆区的,如果JVM停止运行了,对象也不存在了。序列化可以将对象转成字节序列,写入硬盘进行持久化。
网络传输:
序列化以后就都是字节序列了,无论原来是对象、文件、数据、各种不同的格式都会变成字节序列,就可以进行通用的格式传输或保存,传输结束以后,要再次使用就进行反序列化还原,这样对象还是对象,文件还是文件。
简单的说:
就像你寄一箱饼干,因为体积太大,就全压成粉末紧紧地一包寄出去,这就是序列化的作用。
标签:持久,字节,对象,传输,序列,序列化 来源: https://www.cnblogs.com/guohongzhi/p/16572517.html