gpt4 book ai didi

Java,当一个对象被反序列化并包含其他对象时,每个包含的对象都是一个唯一的实例吗?

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

我正在处理 5 个自定义对象,需要能够将它们保存(序列化)到文件并稍后重新加载它们。所有对象都实现了 Serializable,我可以单独保存和重新加载它们。

这里的程序本质上是在模仿关系数据库,但我不能使用实际的数据库。

我的潜在问题是,一个或两个对象包含其他对象。根据我的测试,子对象似乎完整地保存在主对象中。

public foo1(Object o){
foo2(o);
//some other stuff
}

...

public foo2(){
//some stuff
}

当 foo1 对象被反序列化时,它会正确地重新创建自身,包括任何 foo2 对象。

但是,我认为 foo2 对象只是因为它们是 foo1 的一部分这一事实而被指出,并且包含 foo2 副本的 foo1 的任何后续实例基本上都会创建更多foo2 的相同但独立的实例。

我担心这可能会导致在程序加载所有 foo1 时在内存中创建相同 foo2 的数百个副本。

假设是这种情况,实现此过程的更好方法是什么?

最佳答案

没有。对象图的完整性得以保留。如果它包含对单个对象的多个引用,则在反序列化时保留该对象。

关于Java,当一个对象被反序列化并包含其他对象时,每个包含的对象都是一个唯一的实例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24254766/

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