一、java.lang.ref
java.lang.ref包规范(参看JDK API中所述内容,本文就不贴出来了)有几个点很重要。
1. 这个包中的类使得应用程序可以与JVM垃圾收集器进行一些交互;
2. 引用的可达性逐渐降低:强引用、弱引用、软引用、虚引用;
3. 自动清除引用:只有弱引用和软引用会自动清除引用(这表明虚引用不会自动清除),清除的时机是将引...
分类:
编程语言 时间:
2015-08-15 20:04:03
阅读次数:
3423
package?com.sunhang;
//:?containers/References.java
//?Demonstrates?Reference?objects
import?java.lang.ref.*;
import?java.util.*;
class?VeryBig?{
????private?static?final?int?SIZ...
分类:
其他好文 时间:
2015-07-11 18:50:45
阅读次数:
163
Java的四种引用源代码例子不解释,直接上代码,千言万语顶不住一行代码。package com.apkkids.javalanguage;import java.lang.ref.PhantomReference;
import java.lang.ref.Reference;
import java.lang.ref.ReferenceQueue;
import java.lang.ref.Sof...
分类:
编程语言 时间:
2015-06-27 09:54:59
阅读次数:
170
强引用一般程序中通过new创建的对象的引用都是强引用,强引用只有在从根节点不可达的情况下才会被垃圾回收器回收,所以可能产生内存溢出。软引用使用SoftReference创建,弱于强引用,在内存紧张的时候会被回收,不会产生内存溢出。弱引用使用WeakReference创建,弱于软引用,在系统gc时只要发现弱引用直接回收,不会产生内存溢出。虚引用使用PhantomReference创建,最弱的引用类型,...
分类:
编程语言 时间:
2015-05-27 19:09:38
阅读次数:
199
闲来无事,用Java的软引用写了一个山寨的缓存博客分类:java基础众所周知java中的引用分为 StrongReference、SoftReference、WeakReference、PhantomReference。这几种引用有不同那个的 使用场景,平时我们用的最频繁的也就是StrongRefe...
分类:
编程语言 时间:
2015-04-01 11:08:05
阅读次数:
219
我用PhantomReference实现一个实时监视对象数量的小功能,上图代码片断中,ref_array是所有对象的虚引用的集合,我发现了一个问题,就是当暴力测试的时候不时会抛这个错误,即是当在for遍历ref_array还没遍历完的时候,系统回收对象,ref_array中的虚引用被拿到Refe.....
分类:
其他好文 时间:
2015-01-15 19:56:49
阅读次数:
108
本文主要是重申下这几种引用的差别,并给出实际的例子,让读者清楚的感受到它们的差别。软引用和弱引用差别不大,JVM都是先将其referent字段设置成null,之后将软引用或弱引用,加入到关联的引用队列中。我们可以认为JVM先回收堆对象占用的内存,然后才将软引用或弱引用加入到引用队列。而虚引用则不同,JVM不会自动将虚引用的referent字段设置成null,而是先保留堆对象的内存空间,直接将PhantomReference加入到关联的引用队列,也就是说如果我们不手动调用PhantomReference.cl...
分类:
编程语言 时间:
2014-11-21 23:20:12
阅读次数:
1095
一、Java中的强、软、弱、虚引用在JDK中我们可以看到有一个java.lang.ref的包,这个包中就是Java中实现强、软、弱、虚引用的包,如下:PhantomReference虚引用:如果一个对象持有虚引用,就和没有持有引用一样,在任何时候都可能被垃圾回收器回收。虚引用主要用来跟踪对象被垃圾回收的活动,虚引用还有一个和弱、软引用不同的地方是虚引用必须和引用队列联合使用。当垃圾回收器准备回收一...
分类:
编程语言 时间:
2014-09-29 00:23:26
阅读次数:
367
我们知道java语言提供了4种引用类型:强引用、软引用(SoftReference)、弱引用(WeakReference)和幽灵引用(PhantomReference),与引用密切相关的,还有一个引用队列ReferenceQueue。引用和引用队列的关系,对于垃圾回收来说非常重要,学习垃圾回收机制,必须要先了解引用和引用队列的使用方法。本文主要参考网上的一些理论,同时配合自己的一些测试代码,更好的理解这些概念,也解决了之前博客中遗留的问题。...
分类:
编程语言 时间:
2014-09-21 21:21:11
阅读次数:
403
java 引用类型0. 引言 Java 中一共有 4 种类型的引用 : StrongReference、 SoftReference、 WeakReference 以及 PhantomReference , 这 4 种类型的引用与 GC 有着密切的关系. 1. 强引用 (Stron...
分类:
编程语言 时间:
2014-07-02 18:08:58
阅读次数:
257