java SoftReference WeakReference】的更多相关文章

Java 2 平台引入了 java.lang.ref 包,其中包括的类可以让您引用对象,而不将它们留在内存中.这些类还提供了与垃圾收集器(garbage collector)之间有限的交互. 1.先“由强到弱”(只的是和垃圾回收器的关系)明确几个基本概念:      strong references是那种你通常建立的reference,这个reference就是强可及的.这个不会被垃圾回收器自动回收.例如:      StringBuffer buffer = new StringBuffer…
Java.lang.ref 是 Java 类库中比较特殊的一个包,它提供了与 Java 垃圾回收器密切相关的引用类.这些引用类对象可以指向其它对象,但它们不同于一般的引用,因为它们的存在并不防碍 Java 垃圾回收器对它们所指向的对象进行回收.其好处就在于使者可以保持对使用对象的引用,同时 JVM 依然可以在内存不够用的时候对使用对象进行回收.因此这个包在用来实现与缓存相关的应用时特别有用.同时该包也提供了在对象的“可达”性发生改变时,进行 提醒的机制.本文通过对该包进行由浅入深的介绍与分析,使…
引言: 即使对于Java的很多老鸟来说,如果忽然问他引用的类型,大概率是一脸茫然,不知所措的-.Java中的引用还分类型,神马情况??? 本文将针对这些类型进行分析,帮助您一文知所有类型. Java的类型 在Java中存在的类型有两大阵营: 基本数据类型和Java Class. 所谓的基本数据类型包括: byte, char, int, float, double, long, boolean. 数组是一个特殊的数据结构,其中可以使用基础数据类型,也可以是各种类. 除了基本数据类型之外,就是以J…
Reference 是一个抽象类,而 SoftReference,WeakReference,PhantomReference 以及 FinalReference 都是继承它的具体类.接下来我们来分别介绍和分析强引用以及 java.lang.ref 包下各种虚引用的特性及用法.StrongReference, SoftReference, WeakReference 以及 PhantomReference 的特性及用法 StrongReference: 我们都知道 JVM 中对象是被分配在堆(h…
Java 2 平台引入了 java.lang.ref 包,其中包括的类可以让您引用对象,而不将它们留在内存中.这些类还提供了与垃圾收集器(garbage collector)之间有限的交互. 1.先“由强到弱”(只的是和垃圾回收器的关系)明确几个基本概念:      strong references是那种你通常建立的reference,这个reference就是强可及的.这个不会被垃圾回收器自动回收.例如:      StringBuffer buffer = new StringBuffer…
虽然 WeakReference 与 SoftReference 都有利于提高 GC 和 内存的效率, 但是 WeakReference ,一旦失去最后一个强引用,就会被 GC 回收,而软引用 虽然不能阻止被回收,但是可以延迟到 JVM 内存不足的时候.…
转自:http://blog.csdn.net/kavendb/article/details/5935577 本文介绍对象的强.软.弱和虚引用的概念.应用及其在UML中的表示. 1.对象的强.软.弱和虚引用   在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象.也就是说,只有对象处于可触及(reachable)状态,程序才能使用它.从JDK 1.2版本开始,把对象的引用分为4种级别,从而使程序能更加灵活地控制对象的生命周期.这4种级别由高到低依次为:强引用…
最近在看netty的时候看到直接内存的相关概念,为了更详细的了解一下具体原理,搜到了一篇不错的文章 http://lovestblog.cn/blog/2015/05/12/direct-buffer/  因为文章中又涉及到PhantomReference的概念,又为了更详细的了解一下具体原理,又搜到了另一篇不错的文章 https://blog.csdn.net/xlinsist/article/details/57089288 这些概念很多文章中都有讲解,下面主要是针对各个Reference的…
本文介绍对象的强.软.弱和虚引用的概念.应用及其在UML中的表示. 1.对象的强.软.弱和虚引用   在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象.也就是说,只有对象处于可触及(reachable)状态,程序才能使 用它.从JDK 1.2版本开始,把对象的引用分为4种级别,从而使程序能更加灵活地控制对象的生命周期.这4种级别由高到低依次为:强引用.软引用.弱引用和虚引用.图 1为对象应用类层次. 图1 ⑴强引用(StrongReference)    强…