面试:对象引用类型

embedded/2024/12/22 11:08:38/

一、对象引用类型分为哪几类?

1、强引用

  • 普通变量赋值即为强引用,如A a = new A();
  • 通过GC Root的引用链,如果强引用不到该对象,该对象才能被回收

2、软引用

  • 例如:SoftReference a = new SoftReference(new A());
  • 如果仅有软引用该对象时,首次垃圾回收不会回收该对象,如果内存仍不足,再次回收时才会释放对象
  • 软引用自身需要配合引用队列来释放
  • 典型例子是反射数据

3、弱引用

  • 例如:WeakReference a = new WeakReference(new A());
  • 如果仅有弱引用引用该对象时,只要发生垃圾回收,就会释放该对象
  • 弱引用自身需要配合引用队列来释放
  • 典型例子是 ThreadLocalMap 中的Entry对象

4、虚引用

  • 例如:PhantomReference a = new PhantomReference(newA());
  • 必须配合引用队列一起使用,当虚引用引用的对象被回收时,会将虚引用对象入队,由Reference Handler线程释放其关联的外部资源
  • 典型例子是Cleaner释放DirectByteBuffer占用的直接内存


http://www.ppmy.cn/embedded/20038.html

相关文章

富唯智能:打造未来机器人教育新标杆

随着科技的飞速发展,机器人教育正逐渐成为培养未来人才的重要领域。富唯智能,作为业内领先的机器人技术提供商,近日推出了一款全新的机器人教育实践平台系统,旨在为学生提供更加丰富、更具挑战性的学习体验。 该平台系统以AUBO-i5…

盲人咖啡厅导航:科技之光点亮独立生活新里程

在这个繁华的世界中,咖啡厅不仅是人们社交聚会、休闲阅读的场所,更是无数人心灵栖息的一方天地。然而,对于视障群体而言,独自前往这样的公共场所往往面临重重挑战。幸运的是,一款名为蝙蝠避障专为盲人设计的辅助应用&a…

故障诊断 | 基于1DCNN和2DCNN的智能诊断模型—用于机械设备故障诊断

传统机械设备状态监测方法的局限性 严重依赖专家经验: 对于机泵振动信号,时频分析如小波变换、维格纳分布及自适应分解EEMD等方法被用来提取特征,神经网络、支持向量机、决策树、模糊逻辑等方法被用于对机泵的运行状态进行分类。 但由于特征值是根据专家经验进行提取的,对…

江开2024年春《计算机组成原理 060214》第4次计分作业参考答案

答案:更多答案,请关注【电大搜题】微信公众号 答案:更多答案,请关注【电大搜题】微信公众号 答案:更多答案,请关注【电大搜题】微信公众号 单选题 1某计算机字长32位,其存储容量为4GB&am…

【Java那些年系列-启航篇 03】JDK、JRE和JVM之间是什么关系?

作者名称:纸飞机-暖阳 作者简介:专注于Java和大数据领域,致力于探索技术的边界,分享前沿的实践和洞见 文章专栏:Java那些年专栏 专栏介绍:本专栏涵盖了 Java SE从基础语法到面向对象编程,从异常…

加密安全-openssh服务

openssh服务 1、ssh配置 ssh第一次远程链接需要客户端输入yes,如下: # 109节点第一次通过ssh链接106,需要手动输入yes root109:~$ ssh 192.168.31.106 The authenticity of host 192.168.31.106 (192.168.31.106) cant be established. ED…

诡异的scp导致文件被清空问题

scp简介 scp 是 Linux 系统下基于 SSH 登陆进行安全的远程文件拷贝命令。它允许你在不同的 Linux 机器之间复制文件或目录。 使用 scp 命令的基本格式如下: 从本地复制到远程: scp [options] source_file userremote:destination_folder 从远程复制…

在no branch上commmit后,再切换到其他分支,找不到no branch分支的修改怎么办?

解决办法 通过git reflog我们可以查看历史提交记录,这里的第二条提交(fbd3ea8)就是我在no branch上的提交。 再通过git checkout -b backup fbd3ea8,恢复到上次提交的状态,并且为其创建个分支backup,此时…