经常听到序列化和反序列化,请问这个有什么用?

问题可能文的很泛,因为不了解,所以就这么问了,可以从几个方面解答么。

一个是序列化和反序列化一般用于哪里?
另外一个是如何使用?
使用这个的好处是什么?


缥缈止盈
浏览 1181回答 10
10回答

倚天杖

你也知道这样的问题很泛。如果我要回答你,肯定会去百度一资资料来,粘贴在这里,哪为何,你自己不去百度呢这样的问题 google 和 百度才是最好的老师

蓝山帝景

最常用的场景,应该就是持久化对像了吧。比如你要把一个对像存进mysql

凤凰求蛊

基本的两个用途,存储和传输,其实都是转储。转储,由一存储介质转移到另一存储介质,最常用的由内存到硬盘,数据或者对象在俩者之间的表示是有区别的,为了能在两者之间还原对象,需要以特定的方式读取和写入数据或者对象。序列化和反序列化是相对的,一般是将数据或者对象从内存转储到其他介质是序列化,从其他介质转出到内存是反序列化。

繁星coding

就是你这次创建了个对象,或者数组,执行一定的操作之后,你把他存起来,然后方便下次用,你直接拿出来用就行了,你像你打游戏,下线了,下次上线接着这次的进度开始玩,不用重新申请帐号,重新升级了;还有就是多种语言之间互动,比如你 在外国 饭店 要吃鸡,你说中文他听不懂,他能听懂的你不会说,你就画了一个鸡,你认识,他也认识,这个画的鸡,就是序列化...

万千封印

其实应用场景很简单,你在一端将一个内存对象写入到socket中,接收端接受到之后直接使用这个对象。 前面是序列化,后面是反序列化。 完成这个功能的方式有很多,比如最简单的json格式,httpserver会将自己的数据嵌套起来,并且dump成文json字符串发给浏览器,浏览器js代码接受到数据直接将json转换为js数据结构,将接受到的串透明地转换成对象。

波斯汪

简单理解就是计算机之间是通过二进制通信,所以需要把内存中的对象等序列化为二进制数据,接收方再反序列成对象。

素胚勾勒不出你

序列化和反序列化,你可以就将其理解为数据的的编码和解码过程,一种语言系统下的数据结构只有这个系统下才能够识别运行;当数据需要跨语言跨系统传输时,必须将其转成一种中间结构,这个中间结构能被双方识别并能够被还原,这就是序列化和反序列~~~例如在java中表示的一个数据对象结构和Javascript表示的对象结构是不同的,那么通过将java中的一个数据对象序列化成一个Javascript能够识别结构(JSON格式),javascript就能将其还原成语义相同的数据,在Javascript执行环境下运行~~~还有图像数据的传输你也可以认为是一个序列化和反序列化的过程,在传输前图像信息序列化成一个二进制数据流带上图像格式信息,接收方在接收到二进制流后识别出图像格式,将其还原为相应的图像对象显示出来~~~

SMILET

比如你要用localStorage,要存储的数据是个对象,但是localStorage只能存字符串,你怎么办?办法之一就是将对象序列化为一个json字符串,等你要用localStorage中的数据时,你就可以把其中的json字符串反序列化为js对象后使用,明白吗?

慕标5832272

问题的根源在于你不懂网络编程!无论是进程间、线程间的通讯,网络之间client和server通过socket通讯,还是把对象写到db(实际上也是socket)。这些网络交互都是通过收发二进制流的,所以发送时候需要将对象序列化二进制数据发送出去,之后接收端收到二进制数据,再通过反序列化变成对象。要搞清楚问题前,先搞清楚自己不懂的是什么
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java