网站首页 > 精选教程 正文
什么是java四大引用?
是JDK1.2版本开始引入,把对象的引用分为4个等级,我们平时学习的就是四种的第一级的强引用,说白了,就Object o = new Object(),四个引用分别是强引用、软引用、弱引用和虚引用,请记住它们的顺序!因为这是它们对内存的敏感程度!等级: 强 > 软 > 弱 > 虚
它们有什么作用?
灵活的控制对象的生命周期
提高对象的回收机率
理论加代码分析:
1.什么是强引用
强引用就是我们平时使用的对象方式,也是使用最多的一种方式,请记住不管内存紧张也罢,不足也罢,gc永不回收强引用的对象, 即使jvm 出现(内存溢出错误)OutOfMemoryError,使程序停止,也不会回收对象来提高内存.
代码
1. 什么是软引用
对象具备软引用,请记住,只要内存足够,我们不对对象回收,但是当内存不足, gc对软引用对象进行回收 可以看出软引用对内存很敏感,可用来高速缓存,同时它可以结合队列使用,如果软引用被gc回收,jvm就会把软引用加入到队列中。
代码
3. 什么是弱引用?
gc不内存是发现弱引用,就会立刻回收弱引用对象,但是我们知道gc是一个优先级很低的线程,所以不一定立刻发现并回收弱引用对象,但记住,只要被gc发现弱引
用,不管内存够不够,直接回收,同时,弱引用,也可以结合队列使用,当被回收,就进入与之关联的队列中
代码
4. 什么是虚引用?
虚引用和前面的软引用、弱引用不同,它并不影响对象的生命周期。在java中用java.lang.ref.PhantomReference类表示。如果一个对象与虚引用关联,则跟没有引用与之关联一样,在任何时候都可能被垃圾回收器回收。
要注意的是,虚引用必须和引用队列关联使用,当垃圾回收器准备回收一个对象 时,如果发现它还有虚引用,就会把这个虚引用加入到与之 关联的引用队列中。程序可以通过判断引用队列中是否已经加入了虚引用,来了解被引用的对象是否将要被垃圾回 收。如果程序发现某个虚引用已经被加入到引用队列,那么就可以在所引用的对象的内 存被回收之前采取必要的行动。
- 上一篇: 阿里面试题:强、软、弱、虚引用的特点及应用场景
- 下一篇: java强,软,弱,虚引用使用代码对比理解
猜你喜欢
- 2024-11-14 Java强引用、软引用、弱引用和虚引用使用场景
- 2024-11-14 Java中的四种引用类型的区别与联系?
- 2024-11-14 Python 中弱引用的神奇用法与原理探析
- 2024-11-14 Java的4中引用类型:强引用,软引用,弱引用,虚引用
- 2024-11-14 Java强软弱虚引用 java中强引用,弱引用,虚引用
- 2024-11-14 JVM中如何理解强引用、软引用、弱引用、虚引用?
- 2024-11-14 吃透源码的每一个细节和设计原理--ThreadLocal
- 2024-11-14 Java,基本类型和引用类型,强引用、软引用、弱引用、虚引用
- 2024-11-14 一文带你理解jvm之强软弱虚引用 强软弱虚 程序中应用
- 2024-11-14 面试被问java如何实现强引用、软引用、弱引用、虚引用你知道么?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)