weakhashmap相关内容
首先我想澄清我对 WeakReference 的理解,因为以下问题取决于相同的问题. static void test() {人 p = 新人();弱参考person = new WeakReference(p);p =空;System.gc();System.out.println(person.get());System.out.println(person);}静态类人{字符串名
..
我正在尝试使用 WeakHashMap 作为并发 Set 弱引用. this.subscribers =Collections.synchronizedSet(Collections.newSetFromMap(新的 WeakHashMap ())); 当一个元素进入垃圾收集时,我的集合继续将它作为集合的一部分进行报告.因此,地图似乎在不断增长. 文档说: 当一个键被丢弃时,
..
什么是WeakHashMap,什么时候应该使用它?WeakHashMap 和 HashMap 有什么区别? 解决方案 如果没有其他对键对象的强引用,弱哈希图中的元素可以被垃圾收集器回收,这使得它们可用于缓存/查找存储. 弱引用不限于这些哈希表,您可以对单个对象使用弱引用.它们对于节省资源很有用,您可以保留对某些内容的引用,但在没有其他内容引用它时允许收集它.(顺便说一句,强引用是普通
..
我已经阅读了许多非常喜欢我已经阅读了Javadoc,它说它的行为类似于 WeakHashMap . 但是,请阅读 ConcurrentHashMap 和解决方案 ...这才是重点.如果您不想(或负担不起)在内存中无限期保留对象,则弱引用很有用.考虑以下用例:您需要将信息与类相关联.现在,由于您正在一个可能会重新加载类的环境中运行(例如,Tomcat或OSGi环境),因此您希望垃圾收集器能够
..
我必须解决以下情况,在Spring Security 3.2.5-RELEASE中,其中Spring Core 4.1.2-RELEASE应用程序在wildfly 8.1上运行Java 1.7. 用户"bob"登录 然后管理员删除"bob" 如果"bob"注销,则他无法再次登录.但是他的当前会话仍处于活动状态. 我想踢出“鲍勃" //this doesn't work for
..
在下面的代码示例中,将键设置为null并调用System.gc()时,WeakHashMap会丢失所有映射并被清空. class WeakHashMapExample { public static void main(String[] args) { Key k1 = new Key("Hello"); Key k2 = new Key("World"); Ke
..
在nameRef.get()和System.gc()之后的nameRef.get()下面的代码中为null. import java.lang.ref.WeakReference; public class Main { public static void main(String[] args) { String name = new String("ltt")
..
首先,我想澄清我对WeakReference的理解,因为以下问题是相同的. static void test() { Person p = new Person(); WeakReference person = new WeakReference(p); p = null; System.gc(); System.out.prin
..
我正在尝试使用 WeakHashMap 作为并发 Set 弱引用. this.subscribers = Collections.synchronizedSet( Collections.newSetFromMap( new WeakHashMap ()
..
WeakHashMap是Map接口的一个实现,如果相应的键不再由程序的任何部分引用,则Grabage Collector 可以回收值对象的内存。因此,如果在程序中不再使用密钥。它的Entry 对象将被垃圾收集,无论其用途如何。它清晰到这里 这与HashMap不同,即使不再引用键,值对象仍保留在HashMap中。我们需要在HashMap对象上显式调用 remove()方法来删除该值。调用
..
我需要将一些数据与密钥关联起来,因此我使用 WeakHashMap 。但是,另外我需要通过其相应的值获取密钥。简单的方法是在创建值时保留引用: public class Key {} 公共类价值{ 最终公钥密钥; 公共价值(密钥k){ key = k; } } 当然,我使用值在我的程序中,其键不会消失。但是,如果在地图外没有对任何一个键或其值的引用,它是否会
..
WeakHashMap中的关键对象变得无法访问。并且地图应该在GC之后删除条目。但是对价值对象的强烈提及仍然存在。为什么? 使用番石榴弱键映射会发现相同的行为。 预期输出: ... refKey.get = null refValue.get = null 但是我得到了输出: map。 keys = [] map.values = []
..
是否可以使用 Collections.synchronizedMap()重写下面的代码片段,同时保持并发性的正确性? Collections.synchronizedMap(new WeakHashMap()); 即。有什么来自java.util.concurrent可以使用吗?请注意,仅替换为 new ConcurrentHash
..
如果我遍历WeakHashMap的键集,是否需要检查空值? WeakHashMap> hm =新的WeakHashMap>(); for(MyObject item:hm.keySet()){ if(item!= null){//
..
因此,Java WeakHashMap 可以让我们创建一个映射,如果它的键变弱,那么它的条目将被删除。但是,如何在地图中的值变得较弱时创建一个Map条目被删除的地图?我希望使用地图的原因是作为全局哈希表,它根据其ID来跟踪对象。 ID - - >对象地址 键--->价值 (其中 ID 是一个文本字符串) 我想要在对象地址变弱时删除键值对,而不是指向它
..
我调查WeakHashMap ource代码以获得更多有关 WeakReference 的知识 我发现该条目看起来像这样: private static class Entry扩展WeakReference实现Map.Entry { V值; final int hash; 条目下一个; / ** *创建新条目。
..
在 WeakHashMap.html的Javadoc中, a>,它表示 “WeakHashMap中的每个关键对象间接存储为 ,作为 的引用因此只有在 后, 的一个键才会被自动收集器清除 ,并且被 清除。 “ 然后 请注意,一个值对象可以通过 WeakHashMap本身将 间接引用到它的键上;也就是说,值 对象可能强烈地引用某个 其他键对象,其相关联的 值对象
..
Javadocs说:“当某个键已被废弃时,它的输入被有效地从地图中删除”。 但除非有另一个线程有时会删除此类(Map.Entry)条目,值对象是否不会被地图强烈引用?但由于没有这样的线程运行,只有 get 方法调用可以删除这样的条目 - 一次一个。 我几乎总是使用 WeakHashMap> 。为什么它们不会将默认行为 - 值作为弱引用?
..
下面的代码可以使用 Collections.synchronizedMap()重写,但是仍然保持并发的正确性? Collections.synchronizedMap(new WeakHashMap()); 是否有来自java.util.concurrent的东西可以改用?注意,只需用 new ConcurrentHashMap
..