Weak Reference, Soft Reference, Phantom Reference

1. Introduction

"Weak reference objects, which do not prevent their referents from being made finalizable,

finalized, and then reclaimed. Weak references are most often used to implement canonicalizing

mappings." Ref[1]

弱引用对象(Weak reference objects), 该对象不会阻止 它们所引用的对象(their referents) 变为可完结的,已完结的,

接下来可以被回收的。弱引用通常被用来实现规范化的映射。

2. Weak reference Vs. Soft reference

"Weak references are useful for mappings that should have their entries removed automatically

once they are not referenced any more (from outside). The difference between a SoftReference

and a WeakReference is the point of time at which the decision is made to clear and enqueue the reference:

  • SoftReference should be cleared and enqueued as late as possible, that is, in case the VM is in danger of running out of memory.
  • WeakReference may be cleared and enqueued as soon as is known to be weakly-referenced." Ref[2]

弱引用对映射(mapping)很有用处,对于映射来讲,当它们的条目一旦不再被引用时就应该自动地从该映射中移除。

软引用和弱引用地区别是:决定进行清理和将引用入队的时间点。


Reference

1. WeakReference [已读]

http://docs.oracle.com/javase/7/docs/api/java/lang/ref/WeakReference.html

2. WeakReference [已读]

http://developer.android.com/reference/java/lang/ref/WeakReference.html

3. Java Weak Reference [已读]

http://javapapers.com/core-java/java-weak-reference/

该blog描述了以下四种Reference类型:

Strong Reference

Weak Reference

Soft Reference

Phantom Reference

javapapers.com: java相关的各种文章,质量不错。

4. Understanding Weak Reference [Todo]

https://weblogs.java.net/blog/2006/05/04/understanding-weak-references

5. Difference between WeakReference vs SoftReference vs PhantomReference vs Strong reference in Java [Todo]

http://www.javacodegeeks.com/2014/03/difference-between-weakreference-vs-softreference-vs-phantomreference-vs-strong-reference-in-java.html

6. Java References: From Strong to Soft to Weak to Phantom

https://www.rallydev.com/community/engineering/java-references-strong-soft-weak-phantom

7. Finally understanding how references work in Android and Java (AAAA)

https://medium.com/google-developer-experts/finally-understanding-how-references-work-in-android-and-java-26a0d9c92f83#.o2aa3dc6g

8. Java.InnerClass

Java.WeakReference-SoftReference-PhantomReference的更多相关文章

  1. Java中引用类 strong reference .SoftReference 、 WeakReference 和 PhantomReference的区别

      当在 Java 2 平台中首次引入 java.lang.ref 包,其中包含 SoftReference . WeakReference 和 PhantomReference 三个引用类,引用类的 ...

  2. Java引用总结--StrongReference、SoftReference、WeakReference、PhantomReference

    Java引用总结--StrongReference.SoftReference.WeakReference.PhantomReference 1 Java引用介绍 Java从1.2版本开始引入了4种引 ...

  3. Java核心技术-高级特性(2)- SoftReference, WeakReference and PhantomReference

    Java.lang.ref 是 Java 类库中比较特殊的一个包,它提供了与 Java 垃圾回收器密切相关的引用类.这些引用类对象可以指向其它对象,但它们不同于一般的引用,因为它们的存在并不防碍 Ja ...

  4. Java引用详解-StrongReference SoftReference WeakReference PhantomReference

    1 Java引用介绍 Java从1.2版本开始引入了4种引用,这4种引用的级别由高到低依次为:    强引用  >  软引用  >  弱引用  >  虚引用 ⑴强引用(StrongR ...

  5. Java的引用StrongReference、 SoftReference、 WeakReference 、PhantomReference

    1. Strong Reference StrongReference 是 Java 的默认引用实现,  它会尽可能长时间的存活于 JVM 内, 当没有任何对象指向它时 GC 执行后将会被回收 @Te ...

  6. 深入理解StrongReference,SoftReference, WeakReference和PhantomReference

    Java 中一共有 4 种类型的引用 : StrongReference. SoftReference. WeakReference 以及 PhantomReference (传说中的幽灵引用 呵呵) ...

  7. ZT JAVA WeakReference

    JAVA WeakReference 分类: JAVA 2012-08-28 16:08 305人阅读 评论(0) 收藏 举报 javareferencehashmapcacheclassnull 在 ...

  8. Java 引用分类:StrongReference、SoftReference、WeakReference、PhantomReference

    一,定义 在Java中,引用的定义是:如果reference类型的数据中存储的数值代表的是另一块内存的起始地址,就称这块内存代表着一个引用.后面在JDK1.2开始,引用的概念被扩充,引用被分为强引用( ...

  9. Java WeakReference的理解与使用

    转载:http://itindex.net/detail/47754-%E9%9D%A2%E8%AF%95-java-weakreference?utm_source=tuicool&utm_ ...

  10. java WeakReference

    在Java 1.2中就引入了java.lang.ref这个包,WeakReference就属于这个包.WeakReference是干嘛的呢,一言弊之,它是和Java中的垃圾回收相关的.如果一个对象只有 ...

随机推荐

  1. php挖掘数据编码问题

    if(json_encode($jkkey) == 'null'){//判断不是utf8会返回空 $jkkey=mb_convert_encoding($jkkey,'utf-8','gbk'); } ...

  2. [疯狂Java]JDBC:PreparedStatement预编译执行SQL语句

    1. SQL语句的执行过程——Statement直接执行的弊病: 1) SQL语句和编程语言一样,仅仅就会普通的文本字符串,首先数据库引擎无法识别这种文本字符串,而底层的CPU更不理解这些文本字符串( ...

  3. 算法之LOWB三人组之冒泡排序

    排序 冒泡排序(Bubble Sort)时间复杂度为O(n^2) 列表每两个相邻的数,如果前面比后面大,则交换这两个数 一趟排序完成后,则无序区减少一个数,有序区增加一个数. def bubble_s ...

  4. GitHub优秀项目

    https://blog.csdn.net/javaxuexi123/article/details/79248124

  5. c++ 读入优化、输出优化模板

    0. 在有些输入数据很多的变态题中,scanf会大大拖慢程序的时间,cin就更慢了,所以就出现了读入优化.其原理就是一个一个字符的读入,输出优化同理,主要使用getchar,putchar函数. 1. ...

  6. slf4j + log4j 需要的依赖

    正确的依赖 <!-- slf4j 依赖包 --> <dependency> <groupId>org.slf4j</groupId> <artif ...

  7. 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛----随手记录帖

    这是跟学长学姐组队来打的最爽的一次比赛了,也可能是互相组队最后一次比赛了,南哥和楼学姐,省赛之后就退役了,祝他们能考研和面试都有happy ending! 虽然最后没有把F题的n^2约数的数学题写完, ...

  8. TOJ 2130: Permutation Recovery(思维+vector的使用)

    传送门:http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=2130 时间限制(普通/Java): ...

  9. postman接口测试实例

    牛刀小试项目 抽奖项目

  10. git 忽略 IntelliJ .idea文件

    git 忽略 IntelliJ .idea文件 2016年10月22日 11:31:27 阅读数:6196 标签: git 更多 个人分类: git   版权声明:本文为博主原创文章,未经博主允许不得 ...