编程语言
首页 > 编程语言> > java-您可以回收Domino对象的向量吗?

java-您可以回收Domino对象的向量吗?

作者:互联网

我已经制作了对象的向量,这些对象是Domino ViewEntries(就此而言,它们可以是Documents或任何Domino对象).这既不是ViewEntryCollection也不是DocumentCollection.列表对象是一个Vector(甚至可以是ArrayList).我知道这个technote与回收特定对象有关,但是处理列表中的对象尚不清楚

我是否需要分别回收Vector中的所有元素?还是我可以简单地删除它们?如果我想回收元素向量,我该怎么做?向量是否有可能,还是应该使用其他类型的列表构造来完成?

这个例子使我相信它实际上不会回收它们…讨论.

Vector entries = new Vector();
..... add each ViewEntry to the collection....
for (int i=0;i<entries.size();i++) {
     ((ViewEntry) entries.elementAt(i)).recycle();
}

解决方法:

recycle()方法将删除所选Java对象的后端对象.注意,它还会删除可能同时引用该完全相同的JNI引用的任何其他Java对象的后端对象.

它还将回收通过该类创建的所有对象.例如,如果您回收一个NotesCollection,它应该回收所有通过NotesCollection引用的文档.或更明显地,回收会话对象将回收所有内容.

循环中循环的原因是出于存储目的.如果将文档存储在矢量中,请小心,因为每个完整的物理文档都保存在内存中.最好存储UNID并根据需要提取文档.或者,如果引用视图,则拉ViewEntry而不拉文档.因为它将使用更少的内存.

Bobs Balaban的博客文章对此进行了详细介绍.

http://www.bobzblog.com/tuxedoguy.nsf/dx/geek-o-terica-5-taking-out-the-garbage-java

http://www.bobzblog.com/tuxedoguy.nsf/dx/geek-o-terica-6-now-it-gets-complicated-java-garbage-collection-notes-and-threads

http://www.bobzblog.com/tuxedoguy.nsf/dx/geek-o-terica-7-garbage-threads-and-the-corba-classes-in-notes

标签:lotus-domino,recycle,java
来源: https://codeday.me/bug/20191101/1982364.html