List循环添加对象的推荐方式
来源:互联网 发布:python 爬虫框架 编辑:程序博客网 时间:2024/06/14 16:29
先看两段代码
- 代码A
List<User> userList = new ArrayList<>();User user = null;for (int i = 0; i < 10; i++) { user = new User("username_" + i, "password_" + i); userList.add(user);}userList.forEach(ui -> { System.out.println(ui.getUsername() + "," + ui.getPassword());});
- 代码B
List<User> userList = new ArrayList<>();for (int i = 0; i < 10; i++) { User user = new User("username_" + i, "password_" + i); userList.add(user);}userList.forEach(ui -> { System.out.println(ui.getUsername() + "," + ui.getPassword());});
代码A相对于B来讲是更加推荐的方式,因为在代码B中的循环中每次都会创建一个User对象的实例,而代码A从头到尾只持有一个User对象引用,虽然代码A和代码B创建的对象实例数量是一样的,但因为代码A只持有一个User对象的引用,所以每当循环到下一次创建User对象实例的时候,上一个User实例就会失去引用,然后等待java的垃圾自动回收机制来处理。
当然现在只是创建了10个对象,所以代码A和代码B的内存占用没有差很多,但是如果数据量达到一定程度的话,代码B和代码A的内存占用的差距就会显现出来。(不知道以前我为毛一直用代码B的方式,吐血…)
另外还有一个要注意的是如果你使用java8的stream的话,可能只能使用代码B的方式(我就经常使用),大家可以自己实验一下。
阅读全文
2 0
- List循环添加对象的推荐方式
- HashMap的循环遍历推荐方式
- list循环添加相同的map
- list的三种循环方式
- list的三种循环方式
- List for循环与对象的问题
- List有三种循环方式
- List添加对象添加的是对象的引用
- list循环删除对象
- JDK8 list对象循环
- java 对象的传递(针对list<对象>循环)
- list添加对象
- 关于List<>的循环添加与读取问题
- List元素的几种for循环方式及其点评
- List元素的几种for循环方式及其点评
- Java中List的各种循环方式对比
- 将List转成树的两种方式(递归、循环)
- 将List转成树的两种方式(递归、循环)
- POJ
- 服务器网络故障处理——ping丢包或不通时链路测试说明
- 制作根文件系统通过NFS使之挂在到ok6410开发板上
- Shortest Unsorted Continuous Subarray
- 求两个链表的第一个公共结点各种情况及三种思路分析
- List循环添加对象的推荐方式
- jQuery选择器之id选择器
- 安卓写入文件读取文件初步
- Java学习笔记(十四)--IO流
- ue4编辑器中StaticMesh边缘高亮
- Android 自定义View
- ACM 第八届山东省赛 J company SDUT 3902
- c++学习(四)
- 简单动态加载磁盘文件----删除功能