Java ArrayList 大批量添加String导致GC overhead limit exceeded问题
项目中遇到一个问题求教CSDN大牛们,在大批量创建Arraylist的过程中发现GC overhead limit exceeded的情况,具体情况简化如下。
项目中需要用Arraylist添加1000000次counter_temp字符串,counter_temp字符串需要100次累加得到。在运行到后期会出现GC overhead limit exceeded的情况,求大牛指点迷津,代码简化如下:
import java.util.ArrayList;
public class TestGC {
public static void main(String[] args) {
ArrayList list = new ArrayList();
String counter_temp=null;
for (int i = 0; i < 1000000; i++) {
long s = System.currentTimeMillis();
for (int j = 0; j < 100; j++){
if (counter_temp==null){
counter_temp="1";
}else{
counter_temp=counter_temp+"$1";
}
}
list.add(counter_temp);
long end = System.currentTimeMillis();
System.out.println(end-s);
}
}
}