Tôi nhận được một java outOfMemoryError khi tôi gọi phương thức này - tôi đang sử dụng nó trong một vòng lặp để phân tích cú pháp nhiều tệp lớn theo thứ tự. tôi đoán là result.toString()
không nhận được rác được thu thập đúng cách trong vòng lặp. nếu có, tôi nên sửa nó như thế nào?java outOfMemoryError với trình tạo chuỗi
private String matchHelper(String buffer, String regex, String method){
Pattern abbrev_p = Pattern.compile(regex);//norms U.S.A., B.S., PH.D, PH.D.
Matcher abbrev_matcher = abbrev_p.matcher(buffer);
StringBuffer result = new StringBuffer();
while (abbrev_matcher.find()){
abbrev_matcher.appendReplacement(result, abbrevHelper(abbrev_matcher));
}
abbrev_matcher.appendTail(result);
String tempResult = result.toString(); //ERROR OCCURS HERE
return tempResult;
}
Làm thế nào lớn là "tệp lớn"? Có thể bạn chỉ không phân bổ đủ bộ nhớ cho JVM. – Ash
Hiển thị văn bản lỗi để điều tra thêm. – Artic
Làm thế nào về Chuỗi thuần túy của Độ dài OString: 2769348? Hầu hết các chuỗi là nexString của các bức ảnh được chụp –