【问题标题】:What does the term "Serializable" mean? [duplicate]术语“可序列化”是什么意思? [复制]
【发布时间】:2016-02-06 09:31:44
【问题描述】:

根据我读过的定义不太确定可序列化实际上做了什么......

import java.io.Serializable;
import java.text.StringCharacterIterator;
import java.util.*;
import java.io.*;

public final class SavingsAccount implements Serializable {

【问题讨论】:

标签: java serializable


【解决方案1】:

当您使用implements Serializable时,您可以将对象转换为字节,因此该对象可以通过网络发送,可以保存在目录中,并且可以在网络的另一端重建等等。

【讨论】:

    【解决方案2】:

    序列化允许您将您的类(如果它实现Serializable)转换为数据流并通过网络传输,或保存到磁盘上。

    This 应该会给你一些很好的例子和很好的描述。

    【讨论】:

      【解决方案3】:

      一般来说,序列化意味着在语言级别存在一定的级别,在该级别上,语言的实体可以以某种形式“持久化”,并从该持久化形式回读。

      这种持久化形式通常是一个字节流,它被保存到一个文件中;然后您从该文件中读回,以便在运行时重新创建实体。

      在Java中,可以持久化/序列化的基本实体是Object;为了使其成为序列化的候选对象,它必须实现Serializable 接口。

      现在,这个特殊的界面是一个陷阱;它有很多很多正确实施的条件。其中:

      • 理想情况下,您希望所有Serializable 实例都定义一个private static final long serialVersionUUID,是的,在这里,变量的名称很重要,不能是其他任何东西;
      • 您的对象中可能有您不想序列化的实例变量:这些变量应标记为transient
      • 您应该确保除了transient 之外的所有实例变量本身都是可序列化的;如果不是,您必须至少实现{read,write}Object() 方法,或者实现更精细的分辨率readResolve()writeReplace()

      换句话说:祝你好运!

      注意:也许你也想看看Externalizable

      【讨论】:

        猜你喜欢
        • 2011-04-14
        • 2011-03-26
        • 2011-03-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-18
        • 2010-12-17
        相关资源
        最近更新 更多