sol*_*ons 1 java jvm out-of-memory
在创建如此多的强引用时会出现OOM错误,因为GC不会收集强引用,但如果没有额外的内存,GC将收集弱引用.所以我的问题是:我设置一个循环来创建弱参考-Xmx2M
Set<SoftReference<Integer>> sa = new HashSet<~>();
for (int i = 0; i < size; i++) {
SoftReference<Integer> ref = new SoftReference<Integer>(i);
sa.add(ref);
}
Run Code Online (Sandbox Code Playgroud)
它仍然发生在OOM,为什么?
它仍然发生在OOM,为什么?
该Integer
s的但正在清理HashSet
和SoftReference
■不要通过GC上卸下得到.注意:SoftReference
对象大于Integer
对象.
你能做的就是永远不会耗尽内存.
SoftReference<HashSet<Integer>>> sa = null;
for (int i = 0; i < size; i++) {
if (sa == null || sa.get() == null)
sa = new SoftReference<HashSet<Integer>>(new HashSet<Integer>());
sa.get().add(ref);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
99 次 |
最近记录: |