当前位置:  开发笔记 > 前端 > 正文

什么是对象序列化和反序列化?

如何解决《什么是对象序列化和反序列化?》经验,为你挑选了2个好方法。

什么是对象序列化序列化

序列化与常规技术有什么区别,比如读取对象的属性,然后用它们填充DataRow的列,最后在数据库中保存DataRow?



1> Marc Gravell..:

序列化通常是指创建可用于存储(可能在文件中),通过网络传输的数据(而不是对象)的版本,或者可能仅用于AppDomain在单个机器上的进程/ s/etc 之间进行传输.

序列化通常意味着将数据写为字符串(想想:xml/json)或原始二进制(byte[]等等).反序列化是一个相反的过程; 获取原始数据(来自文件,来自传入的网络套接字等)并重建对象模型.

使用db之间的区别在于它没有内在的表格布局,也没有与数据库的真正联系; 数据可以是任何形状,并且倾向于更紧密地映射到面向对象的布局而不是表格的行/列性质.

大多数平台都有一系列序列化工具.例如,它听起来就像你在谈论.NET -所以BinaryFormatter(.NET专用), XmlSerializer,DataContractSerializer,Json.NET和protobuf网/ DOTNET-protobufs将所有符合条件.



2> jens..:

序列化=将对象的相关状态置于可流式表示中.这可能意味着将其转换为字节流.这不一定包括将每个成员变量复制到流中.Joshua Bloch在Effective Java中使用的经典示例是HashSet.您只需序列化Hashset中的元素,但不能序列化键.

反序列化=从串行表示中恢复对象并确保对象的不变量.反序列化可以被认为是对象的单独构造函数.对于上面提到的HashSet,您将创建一个新的HashSet,然后将流中的值插入到这个新的数据结构中.

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有