我遇到了以下代码导致的 Java 堆空间内存溢出错误(OutOfMemoryError: Java heap space):
但是,
StringBuilder obj= new StringBuilder("");
InputStream in = new FileInputStream(new File(file));
br = new BufferedReader(new InputStreamReader(in), 102400);
for (String line; (line= br.readLine()) != null;) {
for (i = 0; i < 3; i++) {
for (j = 1; j < 5; j++){
obj.append(line.charAt(j));
}
}
hashMap.put(obj.toString(), someValue);
obj.setLength(0);
}
但是,
StringBuilder obj= new StringBuilder("");
InputStream in = new FileInputStream(new File(file));
br = new BufferedReader(new InputStreamReader(in), 102400);
for (String line; (line= br.readLine()) != null;) {
obj.setLength(0);
for (i = 0; i < 3; i++) {
for (j = 1; j < 5; j++){
obj.append(line.charAt(j));
}
}
hashMap.put(obj.toString(), someValue);
}
解决了错误?在开头或结尾放置obj.setLength(0)有什么问题?
异常信息:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOfRange(Unknown Source)
at java.lang.String.<init>(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)