gpt4 book ai didi

Java序列化: readFields/putFields vs.序列化映射

转载 作者:行者123 更新时间:2023-12-01 16:10:47 25 4
gpt4 key购买 nike

目前,我们将用户的 session 对象序列化到数据库中,但该对象最近变化太大,因此我们决定重新设计此过程。我们都同意我们不能序列化整个对象,我们需要逐个字段保存它。有 2 条建议,

  1. 将所有字段存储在映射中并序列化映射。
  2. 使用ObjectOutputStream.putFields()

我们认为这两种方法之间没有太大区别。 #1 使用熟悉的 map 界面,每个人都更容易使用。 #2 提供了方便的方法,例如 fields.get("confirmed", false) 等。

我们倾向于选择#1。有人知道 #2 的其他好处吗?

最佳答案

readFieldsputFields优点是您可以开始使用默认序列化,并且仅在需要时添加样板。

一个Map如果使用一次,将产生较小的流,但是如果使用readFields,存储大量这些对象的流将会更小。/putFields 。这是因为描述流格式存在一次性开销。

请注意,您应该始终调用 defaultReadObject/readFieldsreadObject 的开头和defaultWriteObject/putFieldswriteObject 的开头。不幸的是,这没有被检查。

关于Java序列化: readFields/putFields vs.序列化映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1325792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com