Java的StrongReference, SoftReference, WeakReference, PhantomReference的区别
来源:互联网 发布:java怎么运行程序 编辑:程序博客网 时间:2024/04/29 03:58
Java一共有四种类型的饮用,StrongReference, SoftReference, WeakReference, PhantomReference。这四种类型的引用与GC有着密切的联系。
1 StrongReference, 强引用,最常见,就是我们平常写的引用类型。
Object o = new Object();
Object o2 = o;
o和o2都是强引用。只要存在强引用,GC是不会进行回收的。
2 SoftReference, 软引用,这种类型的引用只会在JVM将要OutOfMemory时才会被回收。主要用于缓存,当内存不够时,才去收集这些缓存的内存,从而使缓存不影响应用的内存使用量。
Object o = new Object();
SoftReference<Object> softReferenceObj = new SoftReference<Object>(o);
o = null;
assertNotNull(softReferenceObj.get());
3 WeakReference, 弱引用,这种类型的引用会在GC时被回收。一般用weak reference引用的对象是有价值被cache, 而且很容易被重新被构建, 且很消耗内存的对象。
Object o = new Object();
WeakReference<Object> weakReferenceObj = new WeakReference<Object>(o);
o = null;
System.gc();
assertNull(weakReferenceObj.get());
4 PhantomReference, 虚引用,虚引用既不会影响对象的生命周期,也无法通过虚引用来获取对象实例,只用于在发生GC时接收一个系统通知。
原文:http://blog.csdn.net/hongchangfirst/article/details/50735576
作者:hongchangfirst
hongchangfirst的主页:http://blog.csdn.net/hongchangfirst
- Java的引用StrongReference、 SoftReference、 WeakReference 、PhantomReference
- Java的引用StrongReference、 SoftReference、 WeakReference 、PhantomReference
- Java的StrongReference, SoftReference, WeakReference, PhantomReference的区别
- Java的StrongReference、WeakReference、SoftReference、PhantomReference的理解
- java中四种引用StrongReference,SoftReference,WeakReference,PhantomReference的理解
- StrongReference、SoftReference、WeakReference、PhantomReference
- StrongReference、SoftReference、WeakReference、PhantomReference
- StrongReference,SoftReference,WeakReference,PhantomReference
- StrongReference、SoftReference、WeakReference、PhantomReference
- Java引用总结--StrongReference、SoftReference、WeakReference、PhantomReference
- Java 引用分类:StrongReference、SoftReference、WeakReference、PhantomReference
- Java引用总结--StrongReference、SoftReference、WeakReference、PhantomReference
- Java引用总结--StrongReference、SoftReference、WeakReference、PhantomReference
- Java引用总结--StrongReference、SoftReference、WeakReference、PhantomReference
- Java引用--StrongReference、SoftReference、WeakReference、PhantomReference
- Java引用总结--StrongReference、SoftReference、WeakReference、PhantomReference
- Java引用总结--StrongReference、SoftReference、WeakReference、PhantomReference
- 对StrongReference,WeakReference,SoftReference和PhantomReference的认识
- 【C++】map容器的使用方法
- Android中文件类File的详细使用说明
- iOS 上线 LaunchImage、Icon、iTunes connect的屏幕快照——iOS 上线相关(一)
- PB TreeView 属性,事件详解(转)
- spring 学习小结 1
- Java的StrongReference, SoftReference, WeakReference, PhantomReference的区别
- leetcode328. Odd Even Linked List
- XManager用Xshell上传和下载linux服务器的文件
- 点击查看大图,支持左右滑动切换、缩放图片
- 【HTML/JS】Pdf.js使用教程
- select用法详解
- c++vector用法详解
- Redis原理介绍
- 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttr