弱引用
点击打开链接
弱引用是不阻止引用的对象被垃圾收集。 您可以使用 他们管理
HashMap
查找缓存的对象。 一个弱引用 这并不保持对象的引用它指活着。 弱引用不算作一个参考 垃圾收集。 如果对象没有引用其他地方,它将被垃圾收集。
软引用
软引用是允许你选择对象,只有在有足够的
内存 (
r andom 一个 CCESS 米 埃默里 ) 。 Java的力量抓住对象的有四个订单。 按照降序排列 从最弱的:
幽灵的引用
幻影引用允许你做最后的润色关闭一个对象,即使它被宣布死亡 不再引用任何对象。 Java的力量抓住对象的有四个订单。 按照降序排列 从最弱的:
软vs弱vs幻影引用 | ||||
---|---|---|---|---|
类型 | 目的 | 使用 | 当GCed | 实现类 |
强引用 | 一个普通的参考。 保持活着,只要他们被引用的对象。 | 正常参考。 | 不指向任何对象都可以被回收。 | 默认的 |
软引用 | 保持对象存活提供有足够的内存。 | 继续活着即使客户删除对象引用(高速 缓存),以防客户再次要求他们的关键。 | 第一次gc通过后, JVM决定它仍然需要回收更多的空间。 | java.lang.ref。SoftReference |
弱引用 | 保持对象活着只有当他们在使用由客户(可以)。 | 自动删除对象不再使用的容器。 | gc之后决定了只有弱可及对象 | java.lang.ref。WeakReference java.util。WeakHashMap |
幻影参考 | 让你清理结束后但在空间回收(取代 或扩大使用 完成 ()) | 特殊的净化处理 | 后终结。 | java.lang.ref。PhantomReference |
的 gc ( 克 arbage C ollection ) 将某种形式的吗 完成 消息对象,然后设置任何weakly-referencing 变量为空时处理的对象引用。 这允许 终结 逻辑 处理(如对象之前运行。 ,关闭一个文件如果还在营业,提交任何打开的事务,等等)。 Java版本 1.1 不支持通过非法Ref以外的弱引用类不支持下 Netscape。 弱引用到正式 JDK ( J艾娃 维 发展 K 它 ) 1.2。 Java有三种 弱引用,称为软引用、弱引用和虚引用,以增加 的弱点。
Java的力量抓住对象的有四个订单。 按照降序排列 从最弱的:- 的 JVM ( J 艾娃 v 虚拟的 米 achine 直到)持有到普通对象 他们不再是可以通过客户或任何容器。 换句话说 对象被垃圾收集时,没有更多的生活引用它们。 死的引用不计数。
- 软引用可以从容器中删除,如果客户不再 引用他们,记忆很紧。
- 弱引用会自动从容器中删除客户就停止 引用它们。
- 幻影指向对象的引用已经死亡, 最终敲定。
- 的 JVM ( J 艾娃 v 虚拟的 米 achine 直到)持有到普通对象 他们不再是可以通过客户或任何容器。 换句话说 对象被垃圾收集时,没有更多的生活引用它们。 死的引用不计数。
- 软引用可以从容器中删除,如果客户不再 引用他们,记忆很紧。
- 弱引用会自动从容器中删除客户就停止 引用它们。
- 幻影指向对象的引用已经死亡, 最终敲定。
软vs弱vs幻影引用 | ||||
---|---|---|---|---|
类型 | 目的 | 使用 | 当GCed | 实现类 |
强引用 | 一个普通的参考。 保持活着,只要他们被引用的对象。 | 正常参考。 | 不指向任何对象都可以被回收。 | 默认的 |
软引用 | 保持对象存活提供有足够的内存。 | 继续活着即使客户删除对象引用(高速 缓存),以防客户再次要求他们的关键。 | 第一次gc通过后, JVM决定它仍然需要回收更多的空间。 | java.lang.ref。SoftReference |
弱引用 | 保持对象活着只有当他们在使用由客户(可以)。 | 自动删除对象不再使用的容器。 | gc之后决定了只有弱可及对象 | java.lang.ref。WeakReference java.util。WeakHashMap |
幻影参考 | 让你清理结束后但在空间回收(取代 或扩大使用 完成 ()) | 特殊的净化处理 | 后终结。 | java.lang.ref。PhantomReference |
- 的 JVM ( J 艾娃 v 虚拟的 米 achine 直到)持有到普通对象 他们不再是可以通过客户或任何容器。 换句话说 对象被垃圾收集时,没有更多的生活引用它们。 死的引用不计数。
- 软引用可以从容器中删除,如果客户不再 引用他们,记忆很紧。
- 弱引用会自动从容器中删除客户就停止 引用它们。
- 幻影指向对象的引用已经死亡, 最终敲定。
软vs弱vs幻影引用 | ||||
---|---|---|---|---|
类型 | 目的 | 使用 | 当GCed | 实现类 |
强引用 | 一个普通的参考。 保持活着,只要他们被引用的对象。 | 正常参考。 | 不指向任何对象都可以被回收。 | 默认的 |
软引用 | 保持对象存活提供有足够的内存。 | 继续活着即使客户删除对象引用(高速 缓存),以防客户再次要求他们的关键。 | 第一次gc通过后, JVM决定它仍然需要回收更多的空间。 | java.lang.ref。SoftReference |
弱引用 | 保持对象活着只有当他们在使用由客户(可以)。 | 自动删除对象不再使用的容器。 | gc之后决定了只有弱可及对象 | java.lang.ref。WeakReference java.util。WeakHashMap |
幻影参考 | 让你清理结束后但在空间回收(取代 或扩大使用 完成 ()) | 特殊的净化处理 | 后终结。 | java.lang.ref。PhantomReference |