深入java四种引用类型

一 强引用

强引用:我们见到的最多。。比如:Object a = new Object(); 在实际代码里,这种引用类型处处可见。。。。强引用什么时候被回收,在这种情况下,即使内存空间不足,它也不会被gc回收,而是会报OutOfMemoryError的错误,当把 o置为null的时候,这个时候才解除了强引用,才会被gc在合适的时间回收

晨风-1
晨风-2

二、软引用

软引用就是当内存充足的时候。它不会被垃圾回收器回收,当内存空间不够用的时候,软引用就会被垃圾回收器回收,你要理解软引用SoftReference 是一个对象,该对象里存放着数据

晨风-3

执行之前设置下堆内存大小

晨风-4

三、弱引用

 弱引用就是不管内存中是否有空间,只要遇到垃圾回收器,就会被回收。用途: 是为了解决某些地方的内存泄露的问题。用在 ThreadLocal里面

晨风-5

四、虚引用

虚引用会跟一个引用队列相关联使用,它的原理就是,当一个虚引用指向的对象被回收的时候,它会把一个信息添加到跟这个虚引用相关联的这个队列中。还有就是虚引用的get方法,返回的永远是 null;用途: 管理堆外内存 netty NIO

晨风-6
晨风-7
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容