说一说强、软、弱、虚引用

Java根据其生命周期的长短将引用类型又分为强引用、软引用、弱引用、虚引用。

  • 强引用:就是我们平时 new一个对象的引用。当JVM的内存空间不足时,宁愿抛出OutOfMemoryError使得程序异常终止,也不愿意回收具有强引用的存活着的对象。

  • 软引用:生命周期比强引用短,当JVM认为内存空间不足时,会试图回收软引用指向的对象,也就是说在JVM抛出OutOfMemoryError之前,会去清理软引用对象,适合用在内存敏感的场景。

  • 弱引用:比软引用还短,在GC的时候,不管内存空间足不足都会回收这个对象,ThreadLocal中的 key 就用到了弱引用,适合用在内存敏感的场景。

  • 虚引用:如果一个对象仅持有虚引用,它就和没有任何引用一样,在任何时候都可能被垃圾回收。唯一作用就是配合引用队列来监控引用的对象是否被加入到引用队列中,也就是可以准确的让我们知晓对象何时被回收。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/34403.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Leetcode每日一题】 01背包 - DP41 【模板】01背包(难度⭐⭐)(80)

1. 题目解析 题目链接:DP41 【模板】01背包 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。 2.算法原理 第一问:不超过总体积的背包问题 1. 状态表示 dp[i][j] 表示:从前 i 个物品中挑选&…

汇编语言实验八

目录 一、实验目的 二、实验内容 三.实验步骤以及结果 1、阅读monthtab.asm 程序,要求写出该程序功能,并在实验报告中画出其程序流程图 2.编写一段程序,要求在长度为20的数组(无符号数)中,…

LabVIEW与C#相互调用dll

C#调用LabVIEW创建的dll 我先讲LabVIEW创建自己的.net类库的方法吧,重点是创建,C#调用的步骤,大家可能都很熟悉了。 1、创建LabVIEW项目,并创建一个简单的add.vi,内容就是abc,各个接线端都正确连接就好。 …

云层之间穿梭特效视频转场PR模板素材

12 个超赞的 Premiere Pro 云层穿梭特效视频转场模板 https://prmuban.com/39056.html 📽 你是否正在寻找一种方法,让你的视频更酷、更时尚、更吸引人?今天推荐的12个逼真的云层穿梭特效视频转场模板,绝对能为你的作品锦上添花 ✨…

服务器雪崩的应对策略之----隔离

隔离(Isolation)是一种有效的应对服务器雪崩的策略。通过隔离,可以将问题限制在特定的服务或模块中,避免其扩散到整个系统。隔离方法的核心思想是将系统分成多个相对独立的部分,确保某个部分出现问题时不会影响到其他部…

智赢选品,OZON数据分析选品利器丨萌啦OZON数据

在电商行业的激烈竞争中,如何快速准确地把握市场动态、洞察消费者需求、实现精准选品,是每个电商卖家都面临的挑战。而在这个数据驱动的时代,一款强大的数据分析工具无疑是电商卖家们的得力助手。今天,我们就来聊聊这样一款选品利…

我也认为说 360 无法卸载这一说法,是一个 “彻头彻尾的谣言”

最近,360 公司董事长周鸿祎发布视频回应了 360 无法卸载这一说法,称其是一个 “彻头彻尾的谣言”。他解释道,360 软件完全可以卸载,在设置里面有卸载的入口,通过软件管家也可以正常卸载。不能卸载的说法完全是断章取义…

【UIDynamic-动力学-UIPushBehavior-推行为 Objective-C语言】

一、接下来,我们来说这个,推行为, 1.推行为,首先,它叫做UIPushBehavior, 这个里边呢,又分为持续推力、瞬时推力, 我们新建一个项目,叫做:13-推行为 我们这个里边,还是先来一个redView, UIView *redView = [[UIView alloc] initWithFrame:CGRectMake(100,100,…

E9 附件组件覆写相关案例

1.移动端附件图片预览,移动端流程表单附件图片预览(不下载到本地),点击附件图片字段时拦截点击事件直接预览图片 const enable true; let isRun false; const runScript () > {ecodeSDK.overwriteMobileClassFnQueueMapSet(Upload, {f…

【开发】利用SSH端口转发通过阿里云服务器访问实验室设备

文章目录 写在前面公网服务器与实验室服务器连通性公网服务器ping实验室实验室ping公网服务器SSH隧道转发 写在前面 最近实验室搬家,导致无法访问内网,之前搭建的zerotier组网成功利用手机热点访问,但是无奈zerotier的不稳定导致开发效率低&…

【加密与解密】【06】Java加密套件全解析

Java中的秘钥类 PublicKey,公钥PrivateKey,私钥SecretKey,秘钥,特指对称加密中的秘钥 Key接口 上面的秘钥类均实现该接口 interface java.security.Key// DSA fun getAlgorithm() : String// X.509 fun getFormat() : String/…

B端产品竞品分析-总结版

B端竞品分析的难点 分析维度-业务逻辑复杂 B端产品与C端产品业务模型不同,B端产品主要以业务为导向,因此其业务流程与业务逻辑梳理起来也会较C端产品复杂的多,对于个人能力也有一定的要求,需要我们具备相关领域或行业专业知识。…

猫头虎分享已解决Bug:Array Index Out of Bounds Exception

🐯 猫头虎分享已解决Bug:Array Index Out of Bounds Exception 🐯 摘要 大家好,我是猫头虎,今天我们要聊聊后端开发中经常遇到的一个问题:Array Index Out of Bounds Exception,即 java.lang.…

win10 修改远程桌面端口,在Win10上修改远程桌面端口的要怎么操作

在Windows 10上修改远程桌面端口是一个涉及系统配置的过程,这通常是为了增强安全性或满足特定网络环境的需要。 一、通过注册表编辑器修改远程桌面端口 1. 打开注册表编辑器: - 按下Win R组合键,打开“运行”对话框。 - 在“运行”对话框…

大模型揭秘:AI与CatGPT在实体识别中的创新应用

摘要 尽管大规模语言模型 (LLM) 在各种 NLP 任务上已经取得了 SOTA 性能,但它在 NER 上的性能仍然明显低于监督基线。这是由于 NER 和 LLMs 这两个任务之间的差距:前者本质上是序列标记任务,而后者是文本生成模型。在本文中,我们…

【大数据】—双均线策略(移动平均线)

声明:股市有风险,投资需谨慎!本人没有系统学过金融知识,对股票有敬畏之心没有踏入其大门,今天用另外一种方法模拟炒股,后面的模拟的实战全部用同样的数据,最后比较哪种方法赚的钱多。 量化交易…

【对象的存储与比较】equals() 和 hashCode() 方法

1. Lombok的EqualsAndHashCode(callSuper true) 注解 这个注解用来自动生成equals()和hashCode()方法。其中,callSuper true表示在生成这些方法时,还会考虑到父类中的字段,确保子类实例在比较相等性时也能正确地包含父类的字段比较。 2. …

《2024云安全资源池 能力指南》

《2024云安全资源池 能力指南》这份报告不仅梳理了云安全资源池的发展历程,还深入探讨了其在当前云计算环境下的重要性和必要性。报告详细分析了云安全资源池的市场需求、技术架构、关键技术以及行业应用案例,为政企用户提供了全面的云安全解决方案。通过资料收集、问卷调研、企…

从0开始C++(六):模板与容器的使用详讲

目录 一、模板 函数模板 实例 类模板 实例 二、容器 标准模板类STL 容器的概念 数组(array) 向量 (vector) 列表 (list) 队列 (queue) 双端队列 (deque) 集合 (set) 映射 (map) 哈希集合 (unordered_set) 哈希映射 (unordered_map) 三…

Unity | Shader基础知识(番外:模型的制作流程)

目录 一、前言 二、模型的诞生 三、模型的表面 四、模型的贴图 五、上完材质的模型 六、材质的来源 七、作者的碎碎念 一、前言 up发现,初学程序,除非你是美术,模型出生,要不然对这些都是萌萌哒(蒙蒙哒&#x…