实战 java 的弱引用

9 10月

Java 里的引用

引用有很多种类型, 比如强引用, 软引用,弱引用,虚引用。这里我们只介绍以下 Java 里的弱引用, 其他的不会更多描述, 感兴趣的小伙伴可以自行Google啦。

强引用

强引用很简单, 就是直接对变量赋值后, 这个变量就是强引用到对象object的。也就是说在有用到下面 user 的代码块或者方法区,即使 JVM 发生 GC 也不会回收掉这个对象。

当代码块或者方法执行完毕, user 的强引用就会消失,JVM 就会进行垃圾回收(回收方法依赖当前配置的回收机制)

弱引用

java 提供了2个类实现弱引用:

作用

弱引用主要用在一些内存不够的缓存中,可以自动地帮你清理掉已经不再使用的对象。java 中比较常见的就是WeakHashMap, 它就是用这2个类实现的。如果你用HashMap存object是不会及时清理掉存入的数据的,内存不够就是跑出oom异常,而WeakHashMap则不会。

发表评论

电子邮件地址不会被公开。