寻找在Java中生成大量对象以添加到db4o数据库的最有效方法
我正在尝试向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的垃圾收集应该处理所有
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值也有助于更快地收集对象。