java中的引用
引用分类
-
强引用
- 强引用是我们常见的普通对象引用,只有还有强引用指向一个对象,就表明这个对象还“存活”,垃圾收集器不会碰这个对象
- 当一个对象被强引用对象引用时,它就处于 可达状态,它是不能被垃圾回收的,即使出现了OOM也不会对该对象回收
-
软引用
- 软引用是相对于强引用弱化了一些的引用
- 当系统内存充足时, 它不会被回收
- 当系统内存不足时, 会被回收
- 借助java.lang.ref.SoftReference类来实现
SoftReference<MyObject> softReference = new SoftReference<>(new MyObject());
- 软引用是相对于强引用弱化了一些的引用
-
弱引用
- 只要gc了,无论内存是否充足,都会被回收
- 借助java.lang.ref.WeakReference类来实现
WeakReference<MyObject> weakReference = new WeakReference<>(new MyObject());
-
虚引用
- 虚引用不会决定对象的生命周期, 如果一个对象仅仅持有虚引用,那么它和没有任何引用一样,在任何时候都可能被回收,他不能单独使用,虚引用必须搭配 引用队列—ReferenceQueue 联合使用
- 主要作用是跟踪对象被垃圾回收的状态, 仅仅是提供了一种确保对象被finalize以后,做某些事情的通知机制
- 借助java.lang.ref.PhantomReference类来实现
关于http协议
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南