当前位置: 首页 > 知识库问答 >
问题:

关于可外部化和可串行化的问题

陆洛城
2023-03-14

我们可以使用readResolve和WriteReplace方法来指定可外部化实例和可序列化实例的替换对象……

只是想知道几件事:

1)对于可序列化的类,readObject(ObjectInputStream is)和writeObject(ObjectOutputStream OS)方法可以与readResolve()和writeReplace()结合使用吗?是否可以替换对象,然后使用readObject和writeObject对字节流执行修改操作2)exterializable的writeExternal应该显式地与超类型协调,以保存其状态。我只想知道,对于可序列化的超类(但不是可外部化的)是否也是如此,或者当我们将实例写入流时,可序列化类的状态会自动保存?

共有1个答案

郎灿
2023-03-14

如果可序列化类存在多个特殊方法,则方法的执行顺序

这些方法按以下顺序执行

当序列化发生时,方法的执行顺序如下

writeReplace
writeObject
readObject
readResolve
validateObject

对第1点的回答)

因此,问题1的答案是肯定的

对第2点的回答)

从JavaDoc Serializable接口JavaDoc,对于诸如

 private void writeObject(java.io.ObjectOutputStream out)
     throws IOException

The writeObject method does not need to concern itself with the state belonging to its superclasses or subclasses. State is saved by writing the individual fields to the ObjectOutputStream using the writeObject method or by using the methods for primitive data types supported by DataOutput.
 类似资料:
  • 我试图在java中为Mandelbrot集编程一个可视化,有几件事我正在努力编程。我意识到围绕这个主题的问题已经被问了很多,网上有很多留档,但是很多事情看起来很复杂,我对编程相对来说是新手。 我的第一个问题是放大分形。我的目标是对分形进行“无限”缩放(当然不是无限的,只要普通计算机在计算时间和精度方面允许)。我目前采用的方法是以下计时器: 在实轴(-2,2)和虚轴(2,2)范围内使用一定次数的迭代

  • 我有两个关于Flink外部化检查站的问题 (Q1)我可以在flink-conf.yaml中设置“state.checkpoints.dir”,以使外部化的检查点正常工作,但当我从IDE运行flink时,如何实现同样的效果呢?我尝试了中提到的全局配置方法(http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/state

  • 我想要一个显示阿尔巴尼亚2000年所有疾病数量的柱状图。 我试过了,但我得不到我想要的。

  • 问题内容: 我在流程之前有这个: 然后在另一部分 为什么我收到ClassCastException? 问题答案: 最终我以这种方式工作:

  • 我有一门课: 它运行得很好,但抛出了一个例外:在我对RDD的映射做了一个小更改之后: 我以为这两个功能应该是一样的,但似乎不是。为什么它们不同?

  • 问题内容: 通常,不清楚并行流如何精确地将输入拆分为多个块以及以什么顺序连接这些块。是否有任何方法可以可视化任何流源的整个过程,从而更好地了解发生了什么?假设我创建了这样的流: 我想看一些树状结构: 这意味着将整个输入范围划分为和,然后将范围进一步划分。当然,该图应反映Stream API的实际工作,因此,如果我对此类流执行某些实际操作,则拆分应该以相同的方式执行。 问题答案: 我想用一种解决方案