标签:而在 问题 否则 实例 反序 dash 通信 找不到 了解
序列化是一种用来处理对象流
的机制。
所谓对象流:就是将对象的内容进行流化。可以对流化后的对象进行读写操作
,也可将流化后的对象传输于网络
之间。
序列化是为了解决在对对象流进行读写操作时所引发的问题。
序列化的实现:将需要被序列化的类实现Serializable接口(标记接口)
,该接口没有需要实现的方法,implements Serializable只是为了标注
该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象;接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。
什么时候使用序列化呢?
实现分布式对象
。RMI(即远程调用Remote Method Invocation)
要利用对象序列化运行远程主机上的服务,就像在本地机上运行对象时一样。复制对象本身及引用的对象本身
。序列化一个对象可能得到整个对象序列。反序列化
就可以将原先的类还原到内存中。也可以将类序列化为流数据进行传输。总的来说就是将一个已经实例化的类转成文件存储
,下次需要实例化的时候只要反序列化即可将类实例化到内存中并保留序列化时类中的所有变量和状态。变成一样的东西
,就可以进行通用的格式传输或保存,传输结束以后,要再次使用,就进行反序列化还原,这样对象还是对象,文件还是文件因为JAVA中要将对象序列化为 流的形式
进行传输。
所以涉及到数据传输或者存储的类,严格意义上来说都要加上序列化ID,这也是一种良好的编程习惯
。标签:而在 问题 否则 实例 反序 dash 通信 找不到 了解
原文地址:https://www.cnblogs.com/chenmingjun/p/9746310.html