由于字符串对象,从数据库提取时发生java内存泄漏
我有这样一个代码:
public Integer detailMigration(Integer p1, Integer p2) {
List<Info> memberInfo = this.memberInfoRepository.findBymemberIdBetween(p1, p2);
Integer count = 0;
for (Info pInfo : memberInfo) {
String details = pInfo.getMemberDetails();
//Do something
count++;
}
return count;
}
`List<Info> memberInfo = this.memberInfoRepository.findBymemberIdBetween(p1, p2);` returns the list of member tuples from the DB table.
现在,当我在for循环中迭代元组时:
for (Info pInfo : memberInfo) {
String details = pInfo.getMemberDetails();
//Do something
count++;
}
String details = pInfo.getMemberDetails();
是否将在字符串池中添加新的字符串对象?由于上面的代码流,我的内存泄漏了。
假设在web应用程序中,我经常进行包含字符串类型列的DB查询,所以一旦我从DB中获取它们,它们就会得到附加字符串池。依我看,它应该得到附加池。,而且它在permgen中,所以它对GC不负责。请纠正我给出确切的情况
正确的方法应该是什么
共 (0) 个答案