Java四种对象的引用类型

来源:互联网 发布:淘宝导航条hot图标 编辑:程序博客网 时间:2024/06/06 00:19

原主地址:http://www.cnblogs.com/alias-blog/p/5793108.html

Java四种对象引用类型

按照优先级的排序:强引用,软引用,弱引用,虚引用

强引用:就是指在程序代码中普遍存在,比如这段代码中的Object和str都是强引用


只要某个对象有强引用与之相关呢,JVM必定不会回收这个对象,即使在内存不足的情况下,JVM宁愿抛出OutOfMemory错误也不会回收这种对象


软引用:软引用是用来描述一些有用但并不是必需的对象,在Java中用java.lang.ref.SoftReference类来表示,对于软引用关联着的对象,只有在内存不足的时候JVM才会回收该对象。因此,这一点可以很好地用来解决OOM的问题,并且这个特性很适合用来实现缓存:比如网页缓存,图片缓存


弱引用:弱引用也是用来描述非必需对象的,当JVM进行垃圾回收时,无论内存是否充足,都会回收被弱引用关联的对象。


虚引用:也称作“幽灵引用”;虚引用不影响对象的生命周期。如果一个对象与虚引用关联,在任何时候都可能被垃圾回收器回收


PS:被软引用关联的对象只有在内存不足的时候才会被回收,而被弱引用关联的对象在JVM进行垃圾回收时总会被回收。

软引用适合用来进行缓存,当内存不够时能让JVM回收内存,弱引用能用来在回调函数中防止内存泄漏。



原创粉丝点击