如何解决在创建和返回集合时管理内存
我想知道在内存管理方面更好的编码方式,
public class Cache {
......
......
public List<EmployeeBDO> findEmployees(){
......
List<EmployeeBDO> employees = new ArrayList<>();
for (... : ...) {
employees.add(...);
}
......
return employees;
}
}
或
List<EmployeeBDO> employees = new ArrayList<>();
public class Cache {
......
......
public List<EmployeeBDO> findEmployees(){
......
employees.clear();
for (... : ...) {
employees.add(...);
}
......
return employees;
}
}
每 3000 万有一个刷新缓存,有 15000 名员工,我们将在下拉列表中显示它
解决方法
与所有情况一样,答案是“这取决于……”
如果只有一个 Cache 对象并且只有一个线程在调用 findEmployees 方法,那么第二个选项更好。员工列表将在此处重复使用。
如果多个线程正在调用 findEmployees 方法,那么您只能使用第一个选项。使用多线程时,员工将在线程之间共享并导致数据竞争。
在决定哪种选项最适合内存管理之前,您需要测试性能。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。