冲杯茶喝 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条)

报告相同问题?

悬赏问题

  • ¥100 求购一套带接口实现实习自动签到打卡
  • ¥50 MacOS 使用虚拟机安装k8s
  • ¥500 亚马逊 COOKIE我如何才能实现 登录一个亚马逊账户 下发新 COOKIE ..我使用下发新COOKIE 导入ADS 指纹浏览器登录,我把账户密码 修改过后,原来下发新COOKIE 不会失效的方式
  • ¥20 玩游戏gpu和cpu利用率特别低,玩游戏卡顿
  • ¥25 oracle中的正则匹配
  • ¥15 关于#vscode#的问题:把软件卸载不会再出现蓝屏
  • ¥15 vimplus出现的错误
  • ¥15 usb无线网卡转typec口
  • ¥30 怎么使用AVL fire ESE软件自带的优化模式来优化设计Soot和NOx?
  • ¥15 Ubuntu20.04.4.LTS系统如何下载安装VirtualBox虚拟机?