做网站需要域名,百度搜索引擎关键词,设计师图片素材网站,wordpress搭建的小程序#x1f308;hello#xff0c;你好鸭#xff0c;我是Ethan#xff0c;一名不断学习的码农#xff0c;很高兴你能来阅读。 ✔️目前博客主要更新Java系列、项目案例、计算机必学四件套等。 #x1f3c3;人生之义#xff0c;在于追求#xff0c;不在成败#xff0c;勤通… hello你好鸭我是Ethan一名不断学习的码农很高兴你能来阅读。 ✔️目前博客主要更新Java系列、项目案例、计算机必学四件套等。 人生之义在于追求不在成败勤通大道。加油呀 个人主页Ethan Yankang专栏面试八股文||Java项目
本篇概览Java中的强、弱、虚、软引用详解 目录
3.7 强引用、软引用、弱引用、虚引用的区别
3.7.1 强引用
3.7.2 软引用
3.7.3 弱引用
3.7.4 虚引用 3.7 强引用、软引用、弱引用、虚引用的区别 难易程度☆☆☆☆ 出现频率☆☆☆ 3.7.1 强引用
强引用只有所有 GC Roots 对象都不通过【强引用】引用该对象该对象才能被垃圾回收
User user new User(); 3.7.2 软引用
软引用仅有软引用引用该对象时在垃圾回收后内存仍不足时会再次出发垃圾回收
User user new User();
SoftReference softReference new SoftReference(user); 3.7.3 弱引用
弱引用仅有弱引用引用该对象时在垃圾回收时无论内存是否充足都会回收弱引用对象
User user new User();
WeakReference weakReference new WeakReference(user); 延伸话题ThreadLocal内存泄漏问题 ThreadLocal用的就是弱引用看以下源码
static class Entry extends WeakReferenceThreadLocal? {Object value;
Entry(ThreadLocal? k, Object v) {super(k);value v; //强引用不会被回收}
}
Entry的key是当前ThreadLocalvalue值是我们要设置的数据。
WeakReference表示的是弱引用当JVM进行GC时一旦发现了只具有弱引用的对象不管当前内存空间是否足够都会回收它的内存。但是value是强引用它不会被回收掉。 ThreadLocal使用建议使用完毕后注意调用清理方法。 3.7.4 虚引用
虚引用必须配合引用队列使用被引用对象回收时会将虚引用入队由 Reference Handler 线程调用虚引用相关方法释放直接内存
热门专栏推荐
计算机科学入门系列 关注走一波
CSAPP深入理解计算机原理 关注走一波
微服务项目之黑马头条 关注走一波
redis深度项目之黑马点评 关注走一波
Java面试八股文系列专栏 关注走一波
算法leetcode剑指offer 关注走一波 非常感谢你阅读到这里如果这篇文章对你有帮助希望能留下你的点赞 关注❤ 分享 留言thanks愿大家都能学有所得功不唐捐