java中四种引用的基本概念和作用

ThreadLocal

spring的声明式事务会使用到,保证当前线程中数据库连接是同一个连接

强引用

只要一对象有强引用,垃圾回收机制不会回收

软引用

在内存不够用时,会优先回收只有软引用的内存空间,主要是做缓存用

弱引用

只要是触发垃圾回收机制进行回收,只具有弱引用的对象就会被回收

  • tomcat中就是使用的弱应用
  • ThreadLocal也是使用弱应用

weakhashmap

虚引用

主要是管理堆外内存的,主要是给写jvm的使用

主要检测队列配合使用,虚引用API无法get到值,主要是通知对象已经被回收,去清理堆外的内存

引用类型 被垃圾回收时间 用途 生存时间
强引用 从来不会 对象的一般状态 JVM停止运行时终止
软引用 当内存不足时 对象缓存 内存不足时终止
弱引用 正常垃圾回收时 对象缓存 垃圾回收后终止
虚引用 正常垃圾回收时 跟踪对象的垃圾回收 垃圾回收后终止
posted @ 2021-06-08 15:04  知白守黑,和光同尘  阅读(194)  评论(0编辑  收藏  举报