JavaSE---引用

1、概述

    1.1、JDK1.2前,java中引用的定义:   

          如果  引用类型数据  存储的是   另一块内存的起始地址,就称  这块内存代表一个引用(一个对象 只有 被引用、未被引用 2种状态);

    1.2、有些场景下,当内存足够时,对象可以保留在内存中,如果  内存在垃圾回收后仍然紧张,可以抛弃这些对象

    1.3、JDK1.2后,提供了  (引用强度依次减弱)

          强引用(Strong Reference):

              类似 Object o=new Object(),只要强引用存在,GC永远不会回收被引用的对象;

          软引用(Soft Reference):

              作用:   描述  一些   有用   但   非必需的对象

              软引用 关联的对象,在   系统将要发生内存溢出之前,将会把软引用对象  列入 回收范围内  进行 第二次回收

              JDK提供了SoftReference类实现软引用;

          弱引用(Weak Reference):

              作用:  描述  一些  有用   但   非必需的对象

              弱引用  关联的对象,只能生存到下次GC之前,下一次GC 会进行回收

              JDK提供了WeakReference类实现弱引用;

          虚引用(Phantom Reference):

              作用: 为一个对象设置 虚引用,目的希望能   在这个对象被GC时  收到一个系统通知

              又称为   幽灵引用、幻影引用;

              一个对象    是否存在 虚引用,不会 对其生存时间构成影响无法通过虚引用 取得一个对象实例

              JDK提供  PhantomReference类实现虚引用;

              

          

posted on   anpeiyong  阅读(117)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示