什么是序列化 为什么要序列化?
为什么要序列化?
当两个进程远程通信时,它们可以互相发送各种类型的数据。无论是哪种类型的数据,都将以二进制序列的形式在网络上传输。发送方需要将对象转换为字节序列,然后才能在网络上传输;接收方需要将字节序列恢复为对象。将对象转换为字节序列的过程称为对象序列化。将字节序列恢复到对象的过程称为对象反序列化。更直接地说,序列化的目的是跨进程传输格式化数据
序列化是以某种方式显示信息。其实质是信息交换的需要。想象一下,一个思想家的观点就在他的脑海里。如果你想和他交流信息或了解他的想法,你应该怎么做?最能想象的想法是让他写一本书(连载)。然后,你去书店看这本书,打开它阅读,了解他的想法(反序列化)。这构成了一个单向的信息交互过程。序列化过程中的介质是“book”]~。序列化可以将内存中的类写入文件或数据库。例如,如果序列化一个类并将其另存为文件,则下次读取时,只需反序列化文件中的数据即可将原始类还原到内存中。您还可以序列化类以流式传输数据。一般来说,它是将一个实例化的类转换成一个文件来存储。下次需要实例化一个类时,只需反序列化将该类实例化到内存中,并在序列化时保留该类中的所有变量和状态。例如:Hibernate中实体类的钝化就是将类序列化后保存到磁盘上,释放内存空间。
为什么要序列化?
序列化实际上很容易理解。如果你现在正在做一个项目,项目被分成不同的小组,而其他小组成员不在同一个城市,你怎么把你写的那些课程交给其他小组成员呢?此时,我们需要使用序列化。简单地说:序列化就是将内存中的类或对象(您编写的类都存储在内存中)更改为可以存储在存储介质中的流。将类序列化为流后,可以通过Internet将其传输给其他人。您还可以将其他人的序列化流反序列化为内存中的对象。就是这样
对象序列化可以实现分布式对象。例如,主要应用程序RMI使用对象序列化在远程主机上运行服务,就像在本地主机上运行对象一样。Rjava对象序列化不仅保存对象的数据,而且递归地保存对象引用的每个对象的数据。整个对象层次结构可以写入字节流、保存在文件中或通过网络连接传递。对象序列化可用于“深度复制”对象本身和引用对象本身。序列化一个对象可以产生一个完整的对象序列。Rjava序列化相对简单,通常不需要编写自定义代码来保存和恢复对象状态。实现java.io.Serializable可序列化接口的类对象可以转换为字节流或从字节流中恢复,而无需向类中添加任何代码。只有在极少数情况下,才需要自定义代码来保存或恢复对象状态。注意:不是每个类都可以序列化。某些类无法序列化。例如,涉及线程的类与特定JVM的关系非常复杂。
什么是序列化,为什么要序列化?
序列化是一种用于处理对象流的机制,即流化对象的内容。它可以读写流对象,也可以在网络间传输流对象。序列化是为了解决对象流上的读写操作所引起的问题。
可序列化实现:为要序列化的类实现可序列化接口,该类没有要实现的方法。Implementsserializable只是标记对象是可序列化的。然后,使用输出流(如fileoutputstream)构造objectoutputstream对象,然后使用objectoutputstream对象的writeob。object(objectobj)方法可以写出参数为obj的对象(即保存其状态),并使用输入流还原它。<br/><br/>
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。