while(true)
{
strSql="select * from liandong  limit 1;";
ResultSet rs=db.executeQuery(strSql);
    

}
我在线程中.加入了这样一个语句后,内存在不到半分钟时间内从28K升到了98K,直接溢出内存.请问怎么办.

解决方案 »

  1.   

    while(true)
    {
    strSql="select * from liandong  limit 1;";
    ResultSet rs=db.executeQuery(strSql);
        

    }
    没有上下文 看起来这像死循环吗?
      

  2.   

    死循环
    java的内存释放没有那么快的。
      

  3.   

    >>>rs会无限止增大内存?
    一个rs不会,很多个说不好了
      

  4.   

    里面本来是有if(flag==true)break;这样的语句的,可能是没那么快释放吧
      

  5.   

    “原来你跑这里来了”,哈哈,开个玩笑,看我的帖子:http://community.csdn.net/Expert/TopicView3.asp?id=5615537就是这个原因!
      

  6.   

    while(true){    
        strSql="select * from liandong  limit 1;
        ResultSet rs=db.executeQuery(strSql);
        ..............
        rs用完后要close(),由JVM处理,但处理时间不定,也有可能溢出。
    }
    顺便问以下System.gc(); 会不会降低效率?