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

报告相同问题?

悬赏问题

  • ¥30 Matlab打开默认名称带有/的光谱数据
  • ¥50 easyExcel模板 动态单元格合并列
  • ¥15 res.rows如何取值使用
  • ¥15 在odoo17开发环境中,怎么实现库存管理系统,或独立模块设计与AGV小车对接?开发方面应如何设计和开发?请详细解释MES或WMS在与AGV小车对接时需完成的设计和开发
  • ¥15 CSP算法实现EEG特征提取,哪一步错了?
  • ¥15 游戏盾如何溯源服务器真实ip?需要30个字。后面的字是凑数的
  • ¥15 vue3前端取消收藏的不会引用collectId
  • ¥15 delphi7 HMAC_SHA256方式加密
  • ¥15 关于#qt#的问题:我想实现qcustomplot完成坐标轴
  • ¥15 下列c语言代码为何输出了多余的空格