由于字符串对象从DB获取时内存泄漏

时间:2014-09-19 10:25:01

标签: java string

我有这样的代码:

 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应用程序中,我经常进行包含字符串类型列的数据库查询,所以只要我从数据库中获取它们,就会在字符串池中添加它们。 IMO,它应该加入池中,并且它在permgen中,因此它不对GC负责。请更正确地给我一个确切的方案 什么应该是正确的方法?

0 个答案:

没有答案