当前位置:  开发笔记 > 编程语言 > 正文

序列化概念在编程语言中的含义是什么?

如何解决《序列化概念在编程语言中的含义是什么?》经验,为你挑选了3个好方法。

序列化概念在编程语言中的含义是什么?

当我们Serializable在类上面使用属性时,意思是什么?



1> this. __curi..:

假设您有两个在两台不同物理机器上运行的应用程序.两个应用程序都需要交换两个应用程序通常使用的数据.这些应用程序相互通信以与某些介质共享数据,这些介质可以是文件系统,tcp或udp连接或任何其他合适的网络协议,或者可以是直接的内存数据交换.这些介质中的任何一种都只能理解以一系列位形式描述的数据.因此,当一个应用程序需要将值10发送到另一个应用程序时,值10将作为其二进制表示1010发送,并且您还将传递描述1010的一些信息.该元信息也将是一系列位,另一个应用程序可以容易理解.这很简单.

让我们举另一个例子,其中这两个应用程序需要交换更复杂的非原始数据类型.让我们说他们需要交换Book类型的对象,其中Book是应用程序中的自定义类,并且两个应用程序都具有Book类型的定义.

public class Book
{
    Book() { }

    public long BookId { get;set; }
    public string Author { get;set; }
    public string Title { get;set; }
}

你将如何在两个应用程序之间交换类型书的对象?为了能够在两个应用程序之间共享对象,您需要能够将Book对象转换为二进制表示.这是序列化进入图片的地方.

在序列化的帮助下,您可以定义如何将对象转换为其二进制表示.接收应用程序将执行反向过程,即反序列化,从其二进制表示构造Book对象.


非常感谢您的完整答复。

2> Pieter Germi..:

没有比维基百科更好的解释了.

在计算机科学中,在数据存储和传输的上下文中,序列化是将数据结构或对象转换为比特序列的过程,以便它可以存储在文件或内存缓冲区中,或通过网络连接链路传输到稍后在相同或另一个计算机环境中"复活".

http://en.wikipedia.org/wiki/Serialization

此外,Serializable属性不能用于方法.由属性用法表示

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Enum | AttributeTargets.Delegate, Inherited = false)]


维基百科解释的问题是,从技术上讲,不是数据结构和对象已经是一系列位?

3> Pranay Rana..:

序列化是将对象转换为字节流的过程.反序列化是从字节流创建对象的相反过程.

序列化/反序列化主要用于传输对象(例如在远程处理期间),或用于持久化对象(例如,到文件或数据库).可以将序列化定义为将对象的状态存储到存储介质的过程.在此过程中,对象的公共和私有字段以及类的名称(包括包含该类的程序集)将转换为字节流,然后将其写入数据流.随后对对象进行反序列化时,将创建原始对象的精确克隆.

更多关于这个:http://www.allinterview.com/showanswers/20627.html

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