我一直在搜索和阅读有关对象序列化和相关主题的内容。但是我想不出任何用例。
或者必须使用它的动机或情况是什么?
跟进问题:如果序列化是为了保存对象的状态,为什么需要Java的对象序列化?对象的配置不能保存在文本文件中,而是通过网络发送吗?
答案 0 :(得分:1)
检查MSDN:http://msdn.microsoft.com/en-us/library/vstudio/ms233843.aspx
序列化允许开发人员保存对象的状态并根据需要重新创建它,提供对象的存储以及数据交换。通过序列化,开发人员可以执行诸如通过Web服务将对象发送到远程应用程序,将对象从一个域传递到另一个域,将对象作为XML字符串传递到防火墙,或者维护安全性或特定于用户的操作跨应用程序的信息。
答案 1 :(得分:1)
有时您需要存储对象的状态。这篇文章covers很好。引用序列化原因的文章:
序列化提供:
- 一种持久化对象的方法,例如将其属性写入磁盘上的文件,或将它们保存到数据库中。
- 远程过程调用的方法,例如,在SOAP中。
- 用于分发对象的方法,尤其是在诸如COM,CORBA等软件组件中
- 用于检测时变数据的变化的方法。
答案 2 :(得分:1)
序列化功能非常强大,除了其他用户已经提到的以外,还有多种用途:
有时候你想要深度复制一个对象,一个简单的方法来做到这一点而不会陷入反思的噩梦就是序列化它:How do you do a deep copy of an object in .NET (C# specifically)?
另一个可能是数据验证。通常,当您计划通过线路传输对象时,您将创建一个定义消息结构的XML架构,然后从该架构生成类,这些类将转换为可以传输的对象。在发送对象之前,您希望序列化(例如XML)以保留对象状态,然后发送该数据流,另一端根据模式验证传入的XML消息,以确保它符合您的预定义结构,然后反序列化为一个对象,以进行任何所需的面向对象操作。