标签:使用 弱引用 对象回收 对象 hello oom bsp 开发 nbsp
在java中提供4个级别的引用:强引用、软引用、弱引用和虚引用。除了强引用外,其他3中引用均可以在java.lang.ref包中找到对应的类。开发人员可以在应用程序中直接使用他们,其中FinalReference意味着“最终”引用,它用以实现对象的finalize()方法。
1 强引用
强引用就是程序中一般使用的引用类型,强引用的对象是可触及的,不会被回收。相对的,软引用、弱引用和虚引用的对象是软可触及的、弱可触及的和虚可触及的,在一定条件下,都是可以被回收的。
强引用示例:StringBuffer sb = new StringBuffer("Hello world");
假设以上代码是在函数体内运行的,那么局部变量sb将被分配在栈上,而对象StringBuffer实例被分配在堆上。局部变量sb指向StringBuffer实例所在堆空间,通过sb可以操作该实例,那么sb就是StringBuffer实例的强引用。
强引用的特点:
2 软引用----可被回收的引用
软引用是比强引用弱一点的引用类型,一个对象只持有软引用,那么当堆空间不足时,就会被回收。软引用使用java.lang.ref.SoftReference类型
特点:
GC未必会回收软引用的对象,但是当内存资源紧张时,软引用对象会被回收,所以软引用对象不会引起内存溢出。
3 弱引用-----发现即回收
4 虚引用----对象回收跟踪
一个持有虚引用的对象,和没有引用几乎一样。
它的作用主要是跟踪垃圾回收过程
标签:使用 弱引用 对象回收 对象 hello oom bsp 开发 nbsp
原文地址:http://www.cnblogs.com/zwbg/p/6196000.html