我开始使用面向对象编程(OOP),并想知道:在 OOP 术语中序列化的含义是什么?

序列化是将内存中的对象转换为字节流的过程,因此您可以执行将其存储在磁盘上或通过网络发送的操作。
反序列化是相反的过程:将字节流转换为内存中的对象。
什么是序列化?
通过图片类比解释:
摘要:
序列化意味着将某些东西(例如我的狗雷克斯)转换为一系列 1 和 0-可以运输 / 存储等,然后我的海外朋友可以将这些 1 和 0 翻译回小狗的完美表示(反序列化)。
类比的澄清
朋友们,这是一个类比。我不认为你可以真正序列化一只小狗(还)。你会序列化一个数据结构,或其他一些复杂的对象。(我写了这个答案,所以你可以理解这个概念,以一种有趣的方式,在不到 3 秒的时间内,没有打破你的头反对硬核技术定义),但如果喜欢一个规范的,请查看Wikipedia's entry on serialization。

简单地说,序列化是将对象转换为字节流的过程,以便可以通过网络传输或存储在持久性存储中。
反序列化正好相反-从网络或持久性存储中获取一个字节流,并将其转换回具有相同状态的 Object。
要理解的是如何解释或操纵这些字节流,以便我们获得完全相同的 Object / 相同的状态。有各种方法来实现这一点。其中一些是-
XML:将对象转换为 XML,通过网络传输或将其存储在文件 / db 中。检索它并将其转换回具有相同状态的对象。在 Java 中,我们使用JAXB(用于 XML 绑定的 Java 体系结构)库。(从 Java 6 开始,它与 JDK 在一起)。
JSON:同样可以通过将对象转换为JSON(JavaScript 对象表示法)来完成。
或者我们可以使用由 OOP 语言本身提供的 Serialization。例如,在 Java 中,您可以序列化 Object,使其实现Serializable intece
并写入 Object Stream。
看看这个,这会给你一个很好的解释:
://en..org/wiki/Serialization我认为术语序列化最常见的用法是将二进制对象转换为 XML(或其他字符串)表示形式,以便可以将其存储在数据库 / 文件中或在 Web 服务调用中通过网络发送。反序列化是相反的过程-将 XML / 字符串转换回对象。
编辑:您可能会遇到的另一个术语是编组 / 解组。编组与序列化基本上是相同的概念,解组与反序列化相同。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(73条)