for循环中创建对象

下面这两种for循环中新建对象写法有什么区别呢?

第一种:


list<User> users = new ArrayList<User>();

User user = null;

for (int i = 0; i < 10; i++) {

    user = new User();

    user.setUserId(i);

    user.setUserName("segment" + i);

    users.add(user);

}

……

第二种:


list<User> users = new ArrayList<User>();

for (int i = 0; i < 10; i++) {

    User user = new User();

    user.setUserId(i);

    user.setUserName("segment" + i);

    users.add(user);

}

……

这两种写法对集合users中的内容有影响吗,还是只是性能上有区别?


四季花海
浏览 542回答 9
9回答

鸿蒙传说

没有影响,只是user变量的作用域不同。如果需要对循环的最后一个值做特殊处理,用第一种形式;其它我认为用第二种比较好。

守着星空守着你

每次循环都新建一个对象,每个对象都是不同的。两种写法没什么区别

RISEBY

list<User> users = new ArrayList<User>();for (int i = 0; i < 10; i++) {&nbsp; &nbsp; users.add(new User().setUserId(i).setUserName("segment" + i));}

哆啦的时光机

个人认为似乎没什么区别..

慕少森

可能第一个性能好一点,但这完全不是java程序员考虑的问题,直观上说,第二个有更好的编码规范和易读性。

森栏

记住一个原则吧:变量在需要的时候才声明,才创建。所以:第二种,但区别很小。那些说效率差异的同学,希望有数据支撑,拿出来给大伙看看

饮歌长啸

内容没啥影响吧 就是第一种在for循环结束后user依然指向了一段内存不会被垃圾回收器回收
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java