Java的四种引用类型及用法实例(本地缓存,ThreadLocal,DirectByteBuffer实现分析)

本文详细介绍了Java中的四种引用类型:强引用、软引用、弱引用和虚引用,以及它们在实际应用中的作用。强引用是最常见的引用类型,不会被垃圾回收器回收。软引用常用于缓存,只有在内存不足时才会被回收。弱引用的对象在垃圾回收时会被回收,即使内存充足。虚引用主要用于跟踪对象的回收活动,不决定对象生命周期,通常与引用队列结合使用。文中通过实例解释了如何在本地缓存、ThreadLocal和DirectByteBuffer中使用这些引用类型。
摘要由CSDN通过智能技术生成

Java的对象都是在堆中,我们程序中使用对象都是用的引用,通过引用来对对象进行修改,传递等,也就是说,jvm帮我们完成了对象的内存申请,创建,我们只需通过引用来使用对象就可以了,这样屏蔽了很多复杂的操作,那么java中引用有四种类型:

强引用:我们最常用的就是这种引用,比如Object obj = new Object(),那么obj就是强引用,如果一个对象具有强引用,那就类似我们经常穿的衣服啊等必不可少的生活用品,我们肯定不会把他扔掉,同样jvm的垃圾回收器也不会回收它。当内存空间不足的时候,java虚拟机宁可抛出OOM异常,也不会回收具有强引用的对象来释放内存。如果我们把obj 这个引用赋值为null,那么当jvm扫描到 Object这个对象不再存在强引用时,jvm将回收他

软引用:软引用是用来描述一些有用但并不是必需的对象,在Java中用java.lang.ref.SoftReference类来表示。对于软引用关联着的对象,只有在内存不足的时候JVM才会回收该对象。如果一个对象只有软引用,就类似鸡肋,食之无味、弃之可惜,如果内存空间足够大,垃圾回收期就不会回收它,如果内存空间不够了,就会回收这些对象。他的这种特性常常用来实现缓存,我们的缓存常常需要放到内存中,如果具备了这种特性&#x

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值