【问题标题】:What is Object serialisation?(Java)什么是对象序列化?(Java)
【发布时间】:2010-10-21 04:36:54
【问题描述】:

以不那么技术的方式,对象序列化是什么以及它的目的是什么?什么时候使用?

欢迎任何类比和例子。

【问题讨论】:

标签: java serialization object


【解决方案1】:

对象序列化允许您将对象(数据结构)转换为二进制或其他自定义表示。这又可以用于通过网络发送这些二进制表示或将它们存储在文件系统中。

序列化可用于

  • 通过网络发送对象
  • 坚持
  • Deepcopy 对象树
  • ?

事实上,Java 对象序列化的有趣之处在于,您可以使用标准的序列化机制,将数据从对象转换为二进制表示,或者通过实现 Serializable 接口的方法来自定义它。除此之外,您可以读取对象的数据并“手动”对其进行序列化,即读取值并将它们转换为您想要的任何格式。

查看以下资源:

【讨论】:

  • 不,我只是想知道序列化的其他用例可能是什么。你有什么想法吗?
【解决方案2】:

基本上,这是一种保存存储在对象中的数据的方法,例如到磁盘或通过网络传输。然后可以稍后重建对象。

【讨论】:

    【解决方案3】:

    最简单的解释方式是这样的:

    序列化是一种获取应用程序中的对象并以某种永久格式(二进制、xml 等)描述它们的方法。

    序列化后,您可以无限期地存储它们...通过网络发送它们...稍后再读回它们...发挥您的想象力。

    【讨论】:

      【解决方案4】:

      对象序列化是将对象的状态保存为字节序列的过程,以及在将来某个时间将这些字节重建为活动对象的过程。

      这是一篇讨论Secrets of the Java Serialization的文章

      【讨论】:

        【解决方案5】:

        在另一个 Stack Overflow 问题中有一个 very good summary here。引用accepted answer:

        序列化是一个 对象到一系列字节,所以 该对象可以很容易地保存到 持久存储或流式传输 一个通讯链接。字节流 然后可以反序列化 - 转换 复制到原始对象中。

        【讨论】:

          【解决方案6】:

          不是技术性的:序列化是将基于内存的结构(如正常存在于主内存中的对象)流式传输到持久的、通常是硬盘的过程。因此,您可能会将对象的结构映射到 XML 之类的内容中。

          【讨论】:

            猜你喜欢
            • 2010-10-01
            • 2010-11-21
            • 1970-01-01
            • 1970-01-01
            • 2012-03-31
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多