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

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

public static List for1(){
        System.out.println("1."+System.currentTimeMillis());
        Demo demo = null;
        List demos = new ArrayList();
        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 for2(){
        Demo demo = new Demo();
        List demos = new ArrayList();
        for(int i=0;i<10;i++){
            demo.setId(i);
            demos.add(demo);
        }
        return demos;
    }

    public static List for3(){
        System.out.println("1."+System.currentTimeMillis());
        List demos = new ArrayList();
        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

未完待续···

你可能感兴趣的:(JAVA)