0

db4o データベースに大量のオブジェクトを追加しようとしています。古いオブジェクトの値を更新して再度保存すると、データベースのレコードが上書きされ、レコードが 1 つしかなくなるため、それぞれに対して新しいオブジェクトを作成する必要があるようです。だからここに私が持っているものがあります:

for (String o : d.students) {
    Student stu1 = new Student(o);
    db.store(stu1);
    stu = null;
}

これに関する私の問題は、明らかに、格納されたばかりのオブジェクトで何もせず、ポインターを再割り当てするだけです。Javaのガベージコレクションがすべてを処理する必要があることは知っていますが、Javaが漏れやすいことを知っていることも知っています。

よろしくお願いします!

4

1 に答える 1

2

「Javaはリークがあることで知られている」というあなたの主張は、せいぜい誤った方向に進んでいると思います。

dbコンポーネントがその参照を保持していないと仮定すると、ループのスコープ内で変数を割り当てるだけで、ループ外でそのコレクションをトリガーできます。上記の変数をnullに設定することは、不必要な最適化です。

于 2012-08-03T15:53:18.247 に答える