初学Java,对象的软,弱和虚引用(二十三)
来源:互联网 发布:tengine和nginx比较 编辑:程序博客网 时间:2024/05/23 13:06
java.lang.ref包下提供了三个类SoftReference,phantomReference WeakReference,分别代表软引用,虚引用和弱引用
C#中没有这些概念
强引用,最常见的引用,程序创建一个对象,并把这个对象赋值给一个引用变量,通过该引用来实际操作对象
软引用,需要通过SoftReference类来实现,当一个对象只有一个软引用,它有可能被垃圾回收机制回收。内存空间足够时,不会被回收,不足够时将被回收
弱引用,需要通过WeakReference类来实现,当垃圾回收机制运行时,不管内存是否足够,总会回收该对象所占用的内存
虚引用,通过phantomReference 类实现,虚引用类似于完全没有引用。主要用于跟踪对象被回收的状态 ,不能单独使用,必须和引用队列(ReferenceQueue)联合使用
上面三个引用类都包含一个get方法,用于获取它们所引用的对象
引用队列由java.langl.ref.ReferenceQueue类表示,用于保存被回收后对象的引用
import java.lang.ref.WeakReference;public class TestReference {public static void main(String[] args) {//创建一个字符串对象String str = new String("Structs2 权威指南");//创建一个弱引用,让此引用引用到"Struts2 权威指南"字符串WeakReference wr = new WeakReference(str);//切断str引用和"Struts2 权威指南"字符串之间的引用 str = null;//取出弱引用所引用的对象System.out.println(wr.get());//强制垃圾回收System.gc();System.runFinalization();///再次取出弱引用所引用的对象System.out.println(wr.get());}}
输出:
Struts2 权威指南
null
- 初学Java,对象的软,弱和虚引用(二十三)
- 初学Java,对象的软,弱和虚引用(二十三)
- Java对象的强、软、弱和虚引用(二)
- java对象的强引用,软引用,弱引用和虚引用
- Java对象的强引用、软引用、弱引用和虚引用
- java对象的强引用,软引用,弱引用和虚引用
- java对象的强引用,软引用,弱引用和虚引用
- java对象的强引用,软引用,弱引用和虚引用
- java对象的强引用,软引用,弱引用和虚引用
- java对象的强引用,软引用,弱引用和虚引用
- java对象的强引用,软引用,弱引用和虚引用
- java对象的强引用,软引用,弱引用和虚引用
- java对象的强引用,软引用,弱引用和虚引用
- java对象的强引用,软引用,弱引用和虚引用
- java对象的强引用,软引用,弱引用和虚引用
- java对象的强引用,软引用,弱引用和虚引用
- Java 对象的强引用、软引用、弱引用和虚引用
- java对象的强引用,软引用,弱引用和虚引用
- Fedora16安装openldap
- 汽车电子产品分类
- 示波器的基本使用
- 做完与做好之感受
- 回望自己走过的路
- 初学Java,对象的软,弱和虚引用(二十三)
- 用JavaScrpt 实现文件夹轻松加密
- 个人备忘--计算机视频地址
- 《一个操作系统的实现》读书笔记--第三章--堆栈段的工作方式
- ocp听课总结之3——listener
- [U]3.2.2 Stringsobits 组合,递推
- 学着看企业年报
- Android开发教程之感应检测Sensor
- ROR 安装