Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
寻找在Java中生成大量对象以添加到db4o数据库的最有效方法_Java_Oop_Db4o - Fatal编程技术网

寻找在Java中生成大量对象以添加到db4o数据库的最有效方法

寻找在Java中生成大量对象以添加到db4o数据库的最有效方法,java,oop,db4o,Java,Oop,Db4o,我正在尝试向db4o数据库添加一大堆对象。似乎您必须为每个对象创建一个新对象,因为如果我只是更新旧对象中的值并再次存储它,它只会覆盖数据库中的记录,而我只得到一条记录。这就是我的工作原理: for (String o : d.students) { Student stu1 = new Student(o); db.store(stu1); stu = null; } 我的问题是,显然我没有对刚存储的对象做任何事情,只是重新分配指针。我知道Java的垃圾收集应该处理所有

我正在尝试向db4o数据库添加一大堆对象。似乎您必须为每个对象创建一个新对象,因为如果我只是更新旧对象中的值并再次存储它,它只会覆盖数据库中的记录,而我只得到一条记录。这就是我的工作原理:

for (String o : d.students) {
    Student stu1 = new Student(o);
    db.store(stu1);
    stu = null;
}
我的问题是,显然我没有对刚存储的对象做任何事情,只是重新分配指针。我知道Java的垃圾收集应该处理所有的事情,但我也知道Java的漏洞,所以如果有更安全的方法,我宁愿这样做


非常感谢

我认为你关于“Java以泄露而闻名”的断言充其量是误入歧途的


假设
db
组件不持有该引用,在循环范围内简单地分配一个变量就足以触发循环外的变量集合。在上面将变量设置为
null
是一种不必要的优化。

JVM的GC确实会处理内存,不会有任何泄漏。好吧,酷,我在考虑null。我不太了解垃圾收集的实际机制,所以如果有人知道他们在说什么,说我听到的是误导,我会相信他们的话。。。去做些调查吧!再次非常感谢!不是在本示例中,而是在更复杂的情况下,为jvm设置Xmn值也有助于更快地收集对象。