Questions tagged «weak-references»

弱引用是不主张所有权的引用。弱引用会在内存中保留有关对象的引用,但是当不再需要引用的对象时,它不会阻止内存管理系统回收关联的内存。许多语言都具有或支持各种级别的弱引用,例如Swift,Objective-C,Java,C#,Python,Perl和Lisp。

2
尽管使用了WeakHashMap,但仍发生OutOfMemoryException
如果不调用System.gc(),系统将抛出OutOfMemoryException。我不知道为什么需要System.gc()显式呼叫;JVM应该gc()自称对吧?请指教。 以下是我的测试代码: public static void main(String[] args) throws InterruptedException { WeakHashMap<String, int[]> hm = new WeakHashMap<>(); int i = 0; while(true) { Thread.sleep(1000); i++; String key = new String(new Integer(i).toString()); System.out.println(String.format("add new element %d", i)); hm.put(key, new int[1024 * 10000]); key = null; //System.gc(); } } 如下所示,添加-XX:+PrintGCDetails以打印出GC信息;如您所见,实际上,JVM尝试执行完整的GC运行,但是失败;我仍然不知道原因。如果我取消注释该System.gc();行,结果是肯定的,这很奇怪: add new element …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.