我得到一些细节并存储到字符串数组中(使用getter和setter)。之后我将其设置为bean(大量数据被采集)。为了避免堆空间错误,我必须清除每次将它设置为bean之后的字符串数组。是否有任何方法可以清除它?我是这个环境的新手任何帮助都会非常值得注意....
代码如下......
while ((nextLine = reader.readNext()) != null &&nextLine.length!=0) {
Encapsulation encap=new Encapsulation();
// System.out.println("product name"+nextLine[1]);
encap.setId(nextLine[0]);
encap.setProduct_name(nextLine[1]);
encap.setProduct_url(nextLine[6]);
encap.setProduct_image(nextLine[3]);
encap.setProduct_price(nextLine[5]);
encap.setProduct_src("www.flowersuk.com");
encap.setCountry("Uk");
encap.setDate(myDate);
encap.setCategory(nextLine[8]);
cvobj.DBConnection(encap);
//at here i need to clear the string array.
}
答案 0 :(得分:1)
仅nextLine = null;
怎么样?假设没有其他引用留下悬挂,它应该有资格进行垃圾收集。
答案 1 :(得分:0)
我无法相信持有九字符串的数据结构会导致堆溢出。特别是因为encap
在循环中被重新声明,因此早期版本的encap可以在每个循环中自由地进行垃圾收集。
错误肯定在其他地方:可能在cvobj.DBConnection(encap);
或您的读者代码中。
至于你的实际问题,你不需要做任何事情。
P.S。在重新阅读这个答案时,我的语气似乎有点苛刻,但不知道如何重写它。 :-)