使用弱引用是我从未见过的实现,所以我试图弄清楚它们的用例是什么以及实现如何工作.什么时候需要使用WeakHashMap或者WeakReference它是如何使用的?
似乎有很多不同的实现和方法在Java中生成线程安全的集合.一些例子包括
2)Collections.synchronizedSet(Set set)
4)Collections.newSetFromMap(new ConcurrentHashMap())
5)以类似于(4)的方式生成的其他集合
这些示例来自Java 6中的并发模式:并发集实现
有人可以简单解释这些例子和其他例子的差异,优点和缺点吗?我无法理解并保持Java Std Docs中的所有内容.
有人能解释一下C#中不同类型引用的主要好处吗?
我们有一个消耗大量内存的应用程序,我们正在尝试确定这是否是一个需要关注的领域.
来自jlibs的RuntimeUtil.java 的以下片段保证GC完成垃圾收集.
既然,它也使用System.gc(),我不明白他们怎么能保证它会100%发生.
以下是片段:
/**
* This method guarantees that garbage collection is
* done unlike <code>{@link System#gc()}</code>
*/
public static void gc(){
Object obj = new Object();
WeakReference ref = new WeakReference<Object>(obj);
obj = null;
while(ref.get()!=null)
System.gc();
}
Run Code Online (Sandbox Code Playgroud)