weakhashmap相关内容

什么是 WeakHashMap 以及何时使用它?

什么是WeakHashMap,什么时候应该使用它?WeakHashMap 和 HashMap 有什么区别? 解决方案 如果没有其他对键对象的强引用,弱哈希图中的元素可以被垃圾收集器回收,这使得它们可用于缓存/查找存储. 弱引用不限于这些哈希表,您可以对单个对象使用弱引用.它们对于节省资源很有用,您可以保留对某些内容的引用,但在没有其他内容引用它时允许收集它.(顺便说一句,强引用是普通 ..
发布时间:2021-12-27 17:51:25 Java开发

有人可以向我解释使用MapMaker或WeakHashMaps何时有用吗?

我已经阅读了许多非常喜欢我已经阅读了Javadoc,它说它的行为类似于 WeakHashMap . 但是,请阅读 ConcurrentHashMap 和解决方案 ...这才是重点.如果您不想(或负担不起)在内存中无限期保留对象,则弱引用很有用.考虑以下用例:您需要将信息与类相关联.现在,由于您正在一个可能会重新加载类的环境中运行(例如,Tomcat或OSGi环境),因此您希望垃圾收集器能够 ..
发布时间:2020-07-26 06:58:42 Java开发

WeakHashMap和HashMap

在下面的代码示例中,将键设置为null并调用System.gc()时,WeakHashMap会丢失所有映射并被清空. class WeakHashMapExample { public static void main(String[] args) { Key k1 = new Key("Hello"); Key k2 = new Key("World"); Ke ..
发布时间:2020-07-26 06:58:34 Java开发

WeakHashMap的用法?

WeakHashMap是Map接口的一个实现,如果相应的键不再由程序的任何部分引用,则Grabage Collector 可以回收值对象的内存。因此,如果在程序中不再使用密钥。它的Entry 对象将被垃圾收集,无论其用途如何。它清晰到这里 这与HashMap不同,即使不再引用键,值对象仍保留在HashMap中。我们需要在HashMap对象上显式调用 remove()方法来删除该值。调用 ..
发布时间:2018-12-28 15:01:54 Java开发

如果值包含对密钥的唯一强引用,是否会收集WeakHashMap的条目?

我需要将一些数据与密钥关联起来,因此我使用 WeakHashMap 。但是,另外我需要通过其相应的值获取密钥。简单的方法是在创建值时保留引用: public class Key {} 公共类价值{ 最终公钥密钥; 公共价值(密钥k){ key = k; } } 当然,我使用值在我的程序中,其键不会消失。但是,如果在地图外没有对任何一个键或其值的引用,它是否会 ..
发布时间:2018-12-17 10:48:34 Java开发

Java弱哈希映射 - 需要根据价值的缺陷删除条目,而不是关键

因此,Java WeakHashMap 可以让我们创建一个映射,如果它的键变弱,那么它的条目将被删除。但是,如何在地图中的值变得较弱时创建一个Map条目被删除的地图?我希望使用地图的原因是作为全局哈希表,它根据其ID来跟踪对象。 ID - - >对象地址 键--->价值 (其中 ID 是一个文本字符串) 我想要在对象地址变弱时删除键值对,而不是指向它 ..
发布时间:2018-06-04 13:37:58 Java开发

使用WeakHashMap减少内存使用量

在 WeakHashMap.html的Javadoc中, a>,它表示 “WeakHashMap中的每个关键对象间接存储为 ,作为 的引用因此只有在 后, 的一个键才会被自动收集器清除 ,并且被 清除。 “ 然后 请注意,一个值对象可以通过 WeakHashMap本身将 间接引用到它的键上;也就是说,值 对象可能强烈地引用某个 其他键对象,其相关联的 值对象 ..
发布时间:2018-04-19 18:23:29 Java开发

WeakHashMap和强引用值

Javadocs说:“当某个键已被废弃时,它的输入被有效地从地图中删除”。 但除非有另一个线程有时会删除此类(Map.Entry)条目,值对象是否不会被地图强烈引用?但由于没有这样的线程运行,只有 get 方法调用可以删除这样的条目 - 一次一个。 我几乎总是使用 WeakHashMap> 。为什么它们不会将默认行为 - 值作为弱引用? ..
发布时间:2016-12-15 20:51:11 Java开发