Java 什么';这是什么意思?

Java 什么';这是什么意思?,java,serialization,kryo,Java,Serialization,Kryo,Kryo.reference()的含义是什么 默认情况下,图形中对象在第一次出现后的每个外观都存储为整数序号。这允许序列化对同一对象和循环图的多个引用。这有少量开销,如果不需要,可以禁用以节省空间 我对上述解释感到困惑。使用Kryo.reference时不应该更容易保存,因为它只是使用整数来引用对象?是的,确实如此。假设A引用了B,B引用了A。现在保存A。您需要保存A,既然A引用了B,保存B,既然B引用了A,保存A,既然A引用了B,保存B,等等。。而如果使用整数,则保存A,由于A引用了B,则保存

Kryo.reference()的含义是什么

默认情况下,图形中对象在第一次出现后的每个外观都存储为整数序号。这允许序列化对同一对象和循环图的多个引用。这有少量开销,如果不需要,可以禁用以节省空间


我对上述解释感到困惑。使用
Kryo.reference
时不应该更容易保存,因为它只是使用整数来引用对象?

是的,确实如此。假设A引用了B,B引用了A。现在保存A。您需要保存A,既然A引用了B,保存B,既然B引用了A,保存A,既然A引用了B,保存B,等等。。而如果使用整数,则保存A,由于A引用了B,则保存了B,由于B引用了A,且A已保存,则保存了对A的引用,就完成了。@JBNizet,谢谢您的回答。但我感到困惑的是下面这句话:
这有少量的开销,如果不需要,可以禁用它以节省空间。
在内存中,有循环不是问题。序列化时会出现问题。在内存中,存储一个整数引用42,然后需要在某个字典中查找该整数引用42所引用的实际对象A,与在B中存储对A的直接引用相比,它有一个开销。好的,我得到了它。这意味着,如果没有任何对象A引用B,B引用A,那么使用
kryo.reference(false)
将更容易保存和更快。但是如果是,我们应该使用
kryo.reference(true)
(设置为默认值)。对吧?我不知道。我甚至不知道kryo是什么。只是解释一下上面这句话的意思,是的。假设A引用了B,B引用了A。现在保存A。您需要保存A,既然A引用了B,保存B,既然B引用了A,保存A,既然A引用了B,保存B,等等。。而如果使用整数,则保存A,由于A引用了B,则保存了B,由于B引用了A,且A已保存,则保存了对A的引用,就完成了。@JBNizet,谢谢您的回答。但我感到困惑的是下面这句话:
这有少量的开销,如果不需要,可以禁用它以节省空间。
在内存中,有循环不是问题。序列化时会出现问题。在内存中,存储一个整数引用42,然后需要在某个字典中查找该整数引用42所引用的实际对象A,与在B中存储对A的直接引用相比,它有一个开销。好的,我得到了它。这意味着,如果没有任何对象A引用B,B引用A,那么使用
kryo.reference(false)
将更容易保存和更快。但是如果是,我们应该使用
kryo.reference(true)
(设置为默认值)。对吧?我不知道。我甚至不知道kryo是什么。只是解释一下上面这句话的意思。