JAVA for循环外new 对象与循环内new对象的问题

本文通过三个不同的Java示例代码片段,探讨了在不同场景下创建对象对内存消耗的影响。特别是对比了在循环体内与循环体外创建对象的区别,并讨论了这如何影响程序的性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近写代码的时候,一直在思考这个问题,现在空了,写篇文章记录一下吧!
先来看一段源代码,三种场景:

public static List<Demo> for1(){
        System.out.println("1."+System.currentTimeMillis());
        Demo demo = null;
        List<Demo> demos = new ArrayList<Demo>();
        for(int i=0;i<1000000;i++){
            demo = new Demo();
            demo.setId(i);
            demos.add(demo);
        }
        System.out.println("2."+System.currentTimeMillis());
        return demos;
    }

    public static List<Demo> for2(){
        Demo demo = new Demo();
        List<Demo> demos = new ArrayList<Demo>();
        for(int i=0;i<10;i++){
            demo.setId(i);
            demos.add(demo);
        }
        return demos;
    }

    public static List<Demo> for3(){
        System.out.println("1."+System.currentTimeMillis());
        List<Demo> demos = new ArrayList<Demo>();
        for(int i=0;i<1000000;i++){
            Demo demo = new Demo();
            demo.setId(i);
            demos.add(demo);
        }
        System.out.println("2."+System.currentTimeMillis());
        return demos;
    }

for2先排除了,因为代码是有问题的,结果全是一样的。

for1(简称“f1”)是循环外new对象 for3(简称“f3”)是循环内new对象。
看接下来的知乎:https://www.zhihu.com/question/31751468

未完待续···

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值