冲杯茶喝 2012-04-17 15:56
浏览 204
已采纳

java内存回收gc的问题

看代码

while(...){
List list =new arraylist
list.add();

}

请问进入下一次循环的时候 上一次循环产生的list能够被gc回收吗

  • 写回答

4条回答 默认 最新

  • ll89308839 2012-04-17 18:50
    关注

    上面的说的不对,回收不回收,jvm说了算,并不是立刻就回收
    jvm启动参数上加上gc的日志-XX:+PrintGCDetails
    [code="java"]
    public class TestGc
    public static void main(String[] args) {
    int i=1000;
    while(i-->0){
    List l = new ArrayList();
    for(int j=0;j++<1000;l.add(Integer.valueOf(i)));
    System.out.println("loop "+i+" finish");
    }
    }
    [/code]
    结果可以看出来,并不是立即释放,而是由jvm自己去决定什么时候去释放
    除非手动调用System.gc();
    最好不要手动去释放

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题