黑马程序员技术交流社区
标题:
java.lang.OutOfMemoryError:错误~!!
[打印本页]
作者:
张志明
时间:
2014-2-7 10:24
标题:
java.lang.OutOfMemoryError:错误~!!
List<UserAccount> list = new ArrayList<UserAccount>();
UserAccount ua;
for(int i = 0 ;i<2000000;i++){
ua = new UserAccount();
ua.setUname("a"+i);
ua.setUpass("a");
ua.setUgroup("aa");
list.add(ua);
}
System.out.println(list.size());
复制代码
这个相当与是数据库查出来2000000条记录。我把它封成对像,放到list中。。但。因数据太大。。每次都抛java.lang.OutOfMemoryError: Java heap space
因为每次都 在循环中new了一个对像。。。
这种应该怎么来处理呢?
作者:
2424308
时间:
2014-2-9 21:30
设置JVM的内存,搞大点
作者:
Amorvos
时间:
2014-2-18 09:39
Java虽然存在内存回收机制,但是并不是说你不需要自己手动释放资源,我把你的循环代码改了一下,你看看还报错吗
for (int i = 0; i < 200000; i++) {
ua = new UserAccount();
ua.setUname("a" + i);
ua.setUpass("a");
ua.setUgroup("aa");
list.add(ua);
ua = null;
}
复制代码
作者:
Amorvos
时间:
2014-2-18 09:45
本帖最后由 Amorvos 于 2014-2-18 14:18 编辑
你不要认为说Java有垃圾回收,程序员就不需要关心内存释放问题,JVM的垃圾回收机制会自动回收无用对象所占用的内存空间。但是这并不是说Java不存在内存泄露,Java的内存泄露更隐蔽、更不容易觉察到,有很多人说内存可以搞大一点,如果这样的话问题不是被解决而是被掩盖,楼主可以看一些关于Java内存回收方面的文章补充一下。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2