java的四种引用类型


java有四种引用类型

  1. StrongReference 强引用,最普通的引用,虚拟机即使抛出OOM也不会回收此类引用的对象
  2. SoftReference 软引用,虚拟机只在OOM前会回收此类引用(虚拟机在GC后发现内存空间仍然不足时,会回收软引用的对象)
  3. WeakReference 弱引用,虚拟机在GC时会回收此类引用
  4. PhantomReference 虚引用,仅用来处理资源清理问题,比finalize灵活

总结一下

引用类型 目的 应用 GC时机 实现类
强引用 普通引用类型 普通引用类型 永远不会被GC
软引用 只要内存充足,对象就不会被回收 内存敏感的缓存,可以一直填充对象而不会OOM的Map OOM前进行回收 SoftReference
弱引用 不再使用时被GC回收 容器认为对象无用时,取消强引用,自动被GC回收 GC时 WeakReference,WeakHashMap
虚引用 处理资源清理问题,比finalize灵活 finalize函数的替代或增强 GC时 PhantomReference
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容