如何在java中清除(清空)字符串数组?
我得到了一些细节并存储在一个字符串数组中(使用getter和setter)。之后我将它设置为一个bean(获取了大量数据)。为了避免堆空间错误,每次将字符串数组设置为bean后,我都必须清除它。有什么方法可以清除它吗?我不熟悉这个环境。任何帮助都将非常有用 代码如下所示如何在java中清除(清空)字符串数组?,java,arrays,javabeans,Java,Arrays,Javabeans,我得到了一些细节并存储在一个字符串数组中(使用getter和setter)。之后我将它设置为一个bean(获取了大量数据)。为了避免堆空间错误,每次将字符串数组设置为bean后,我都必须清除它。有什么方法可以清除它吗?我不熟悉这个环境。任何帮助都将非常有用 代码如下所示 while ((nextLine = reader.readNext()) != null &&nextLine.length!=0) { En
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.
}
不如干脆
nextLine=null代码>?假设没有其他对它的引用悬而未决,那么它应该有资格进行垃圾收集 我无法相信一个包含9个字符串的数据结构会导致堆溢出。特别是由于encap
在循环中被重新声明,因此早期版本的encap可以在每个循环中自由地进行垃圾收集
故障肯定在别处:可能在cvobj.DBConnection(encap)中代码>或在读卡器代码中
至于你的实际问题,你不需要做任何事情
p、 在重读这个答案时,我的语气似乎有点刺耳,但不知道如何重写它。:-) 无法清除字符串对象。只有您可以将引用设为null,因此每当调用垃圾收集器时,它都会获取所有垃圾nextLine
是一个字符串
而不是一个数组。。。这段代码甚至可以编译吗?在每次设置bean之后,字符串数组都包含大量数据。因此需要在字符串中获取数据空间。Elliott是的,它正在编译并工作。经过一些时间后,它会增加堆空间error@Jack我觉得很难相信给定的nextLine=reader.readNext()
感谢用户949300的回复