gpt4 book ai didi

java - java序列化中最便宜的标记?

转载 作者:行者123 更新时间:2023-11-29 05:05:10 24 4
gpt4 key购买 nike

我正在使用 ObjectOutputStream 的 writeObject 方法序列化一棵树。 tree 的数据类型是通用的,可以是整数,也可以是复杂的“Student”对象。但是我需要“标记”一个空指针,一个我将用来标记离开节点的指针。例如:

  if (node.item == null) {
oos.writeObject('SOMEMARKER');
return;
}

我的问题是什么是标记 null 的最便宜(节省空间)的方法?例如:使用 boolean 值?例如:oos.writeObject(true) ?

最佳答案

标记null 的最简单方法是使用null。

oos.writeObject(null);

您可以使用 boolean 值进行标记,但 writeObject(true) 使用的空间比仅传递 null 要多。

if (node.item == null) {
oos.writeByte(0);
} else {
oos.writeByte(1);
oos.writeObject(note.item);
}

// to read
Item item = ois.readByte() == 0 ? null : (Item) ois.readObject();

但是,由于您使用的 Java Serailization 无论如何都非常低效,所以我不会担心它并保持简单。

oos.writeObject(item.node);

// to read
Item item = (Item) ois.readObject();

关于java - java序列化中最便宜的标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30601015/

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