序列化与反序列化的本质?
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
本文仅是笔者个人的思考与总结,请谨慎阅读。 一、本质在个人看来,“序列化”的本质就是将“用指针表达”的数据变成“直接用数值表达”。 而“反序列化”则是将“直接用数值表达”的数据还原成“用指针表达”。 为啥要进行这种“序列化”与“反序列化”的操作呢? 二、关于相互转换目的就是为了让数据实现从“方便操作”到“方便存储”的相互转换。 序列化是为了方便存储,反序列化是为了方便操作。 来个具体的例子,比如现在有个Java对象,如果你只是需要用它编写各种业务逻辑和进行计算,那么直接用就行,很方便。 但假如你要将这个对象“持久化”,想将这个对象存储到某个文本文件中,你就需要将这个对象先进行一个“序列化”。 三、关于对象的存储为啥不能直接将对象存储到文本文件中呢? 因为,对象的本质是“指针”组成的实体。 指针的本质其实就是“内存地址”,而内存地址的本质则是“二进制数据”。 所谓的文本文件不能存储对象的本质其实就是文本文件不能存储二进制数据。 四、打个比方可以打一个粗糙的比喻,这就像你有个富豪朋友想送车给你。 本来他是想当面送给你的,可是突然有事所以就改为告诉你具体的4S店地址,他已经付过钱你可以直接去取。 这就是一个典型的“反序列化”,即由直接当面给你实体车,变成给你一个地址让你自己去取。 可是当你刚刚出门,你的富豪朋友又突然电话你说他忙完了,打算还是当面送你车,他会把车开过来。 这就又变成了一个“序列化”的场景,即从告诉你地址让你取,变成直接将实体车送到你面前。 阅读原文:https://mp.weixin.qq.com/s/zd345FKAWIbJa2OqG0pbZg 该文章在 2025/10/23 17:35:45 编辑过 |
关键字查询
相关文章
正在查询... |