非静态内部类对象不再被引用后会被垃圾回收吗?

2024-03-09

我有一个类似于以下的 spring bean:

public class MyServiceImpl {
    private MyDAO myDAO;

    public class MyInnerClass implements SomeInterface<MyInnerClass> {

        @Override
        public MyInnerClass loadFreshObject(final String key) {
            return myDAO.load(key);
        }
    }

}

实例MyInnerClass正在 spring bean 外部的代码中创建,但不保留对这些实例的引用。

假设我无法控制这些公共非静态内部类的使用(我知道理想情况下这些内部类将是私有的和静态的,以避免泄漏对“this”的引用),“MyInnerClass”创建的实例是否会被正确地垃圾收集?

我已经通过覆盖来对此进行了自己的测试finalize()看来这些实例正在正确地被垃圾收集,我只是希望对此进行澄清。

Thanks


内部类的实例将根据正常规则(即当它们不再被引用时)被垃圾收集。但是,内部类的每个实例都包含对其外部类的父实例的隐藏引用。这意味着,如果存在对内部类实例的任何实时引用,它们将阻止外部类的关联实例被垃圾收集。但它只朝那个方向起作用,而不是朝相反方向起作用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

非静态内部类对象不再被引用后会被垃圾回收吗? 的相关文章

  • 在 Spring Boot 中重新加载/刷新缓存

    我正在使用 Spring Boot 对于缓存 我使用 Ehcache 到目前为止一切正常 但现在我必须重新加载 刷新 那么我该如何执行此操作 以便我的应用程序不会出现任何停机时间 我在Spring Ehcache中尝试了很多方法 但它不起作
  • Java简单加密

    我想加密存储在磁盘上的文本 配置 文件 尝试使用DES http en wikipedia org wiki Data Encryption Standard加密 我在客户端计算机上遇到了致命错误 后来我发现该算法无法处理重音字符 我怀疑这
  • TestNG 启动期间发生内部错误

    我创建了一个 TestNG 类 FirstTest java 当我将测试用例作为 TestNG Test 运行时 出现以下错误 期间发生内部错误 启动 FirstTest java lang NullPointerException Ecl
  • 使用 CXF 通过 HTTP 基本身份验证使用 Web 服务时出现 401 错误

    我正在尝试在 JUnit 测试中使用使用 HTTP 基本身份验证 使用 Apache CXF 的远程 Web 服务 我收到的错误是 javax xml ws WebServiceException Failed to access the
  • 使用不同的组合器和累加器进行流缩减的示例

    问题是关于java util stream Stream reduce U identity BiFunction
  • Java:BufferedInputStream 的 available() 方法存在问题

    我正在处理以下代码 用于将大文件拆分为一组较小的文件 FileInputStream input new FileInputStream this fileToSplit BufferedInputStream iBuff new Buff
  • SimpleDateFormat 无法正确处理 DD

    我正在尝试获得这样的格式 2013 06 15 17 45 我在代码中执行以下操作 Date d new Date SimpleDateFormat ft new SimpleDateFormat YYYY MM DD HH mm Stri
  • AES BadPaddingException

    如果我使用错误的密钥或错误的盐进行解密 则会引发 BadPaddingException 我希望返回一个不正确的字符串 doFinal 导致解密方法出现异常 信息 This is just an example Unfug S F V s
  • 使用用户名进行 Java LDAP 身份验证

    好吧 这让我发疯 我正在尝试使用 Java 创建 LDAP 身份验证 如果我在 SECURITY PRINCIPAL 中使用我的名字和姓氏 一切都很好 这是我的代码 try Hashtable
  • 在Tomcat中设置环境变量TESSDATA_PREFIX

    我们正在使用名为 Tess4J 的 Tesseract OCR Java 库 如果作为独立应用程序运行 它可以正常工作 它需要一个名为 TESSDATA PREFIX 的变量 其中包含 tessdata 配置和其他字符集相关文件 它也可以与
  • Android 防火墙与 VpnService

    我正在尝试使用 BS 项目的 VpnService 为 Android 实现一个简单的防火墙 我选择 VpnService 因为它将在非 root 设备上运行 它将记录连接并让您过滤连接 基于IP 有一个应用程序可以做到这一点 因此这是可能
  • 在 JSF 自定义验证器中区分 ajax 请求和完整请求

    我的验证器需要知道它是完整请求还是 ajax 请求 在我当前的解决方案中 我检查 http 请求标头X Requested With元素 public void validate FacesContext context UICompone
  • 基于Java模式分割字符串

    您好 我有以下模式的日志文件 2014 03 06 03 21 45 432 ERROR mfs pool 3 thread 19 dispatcher StatusNotification Error processing notific
  • 未从线程接收位置数据

    我尝试使用计时器经常发送包含用户位置的短信 最初 我遇到了空指针异常 这是由于我犯了一个简单的错误 一旦解决了这个问题 一切似乎都运行良好 但是 它永远不会获取我的位置 因此 不断发送的文本显示 无法接收位置 我想问的是为什么它无法获取我的
  • 使用泛型进行选择排序

    我对整数进行了选择排序并且它正在工作 当我尝试修改程序以使用泛型时 编译器会抱怨 我不知道如何修复它 如果有人能提出一些建议和建设性意见 我将不胜感激 这是代码 public class SelelctionSort public stat
  • 从字符串中提取文本 Java

    使用此字符串 ADACADABRA 如何从java中的字符串 ADACADABRA 中提取 CADA 以及如何提取 和 之间的id从下面的链接 http www youtube nocookie com embed zaaU9lJ34c5
  • 飞碟 - html 实体未呈现

    我正在使用 Flying saucer lib 生成 pdf 但我对一些 html 实体有问题 我已经在寻找解决方案 我在这个论坛和其他地方找到了很多提示 但仍然存在问题 我尝试过这种方法 http sdtidbits blogspot c
  • 为什么我的 Java 路径中添加了“L”?

    我在我的类路径中加载了一个 jar 在 iReport 中 如果重要的话 我确信它具有所需的方法 但是当我尝试测试连接 从而调用该 jar 时 我得到一个 java lang NoSuchMethodError 说它正在引用班上 Lorg
  • 需要同步仅增量计数器吗?

    我使用整数作为计数器 该整数只会增加 并且肯定有多个线程会同时增加它 当没有其他线程尝试访问其值时 在程序执行结束时读取该计数器的值 我假设我不必为这种仅增量计数器使用锁或任何类型的同步 这是正确的吗 如果这有什么区别的话 我用 Java
  • Java分数计算器

    我对 Java 编程还很陌生 我的 AP 计算机编程课程有作业要完成 所以请耐心等待 我必须弄清楚如何将两个分数相乘 我想知道是否有任何方法可以在方法内部声明变量并在该方法外部使用它 我在介绍方法中的 while 循环 谢谢您 希望这不会令

随机推荐

  • 如何检查字符串列表是否存在于两个单独的文件中

    我有两个文件 文件 A 是 IP 地址列表 同一行上有相应的 MAC 地址 文件 B 是仅包含 MAC 地址的列表 我需要比较这两个文件并列出文件 A 中没有在文件 B 中找到的 MAC 地址的行 FILE A 172 0 0 1 AA B
  • 如何让IE10的边框折叠起来?

    有没有人遇到过在 IE10 中无法工作的表格边框折叠的解决方案 我在需要的地方使用了网站上的表格 并且它们在所有其他浏览器中显示良好 但从 IE 10 开始 边框太厚了 上面的问题可能已经有几个月了 但今天我遇到了同样的问题 并且认为我至少
  • Shopify 购物车更改事件 - javascript

    当 Shopify 购物车发生更改时是否会触发一个事件 我可以每隔 x 秒刷新一次购物车 看看是否有什么变化 但基于事件的方法总是更好 虽然没有一站式 购物 呵呵 的方法 但这是可以做到的 在 Shopify 中 商品可以通过常规 HTML
  • 如何使用 Scikit-learn 查找簇质心 [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我有一个带有 标记 集群的数据集 我试图找到每个簇的质心 一个向量 其距离是簇的所有数据点中最小的 我找到了许多解决方案
  • React-native应用程序不会在后退按钮上关闭

    当按下后退按钮时 我的反应本机应用程序 在 Android 上 不会关闭 它关闭并进入后台并在那里运行 动画 我也尝试过这个 但得到了相同的结果 BackHandler addEventListener hardwareBackPress
  • 为多个应用程序创建安装程序

    嘿 我正在尝试从一台服务器计算机创建多个游戏的安装程序 然后由各个计算机执行 例如 BF 1942 WC3 BF2 DOW 但是 我需要能够选择要安装的应用程序 这是一个简单的复选框 我对 C 的了解有限 解决这个问题的最佳方法是什么 我看
  • Android NDK:如何在没有java的情况下重写NativeActivity中的onBackPressed?

    我的应用程序完全使用 C C 编写NativeActivity 它没有 Java 代码 基于 native activity NDK 示例 按 后退 按钮将其关闭 破坏活动 但我需要此按钮的其他行为 因为我有自己的 UI 和菜单 它们通过
  • PHP-按索引范围获取数组记录

    你好呀 是否有任何 PHP 本机函数可以根据索引的开始和结束返回数组中的记录范围 i e array 0 gt a 1 gt b 2 gt c 3 gt d 现在我只想返回索引 1 和 3 b c d 之间的记录 任何想法 你不能这样做吗
  • WPF Flowdocument paragraph.BringIntoView() 不适用于新文档

    我想加载大 rtf 文件并滚动到其中的特定段落 所以我做了这样的事情 private FlowDocument GenerateDocument string path var doc new FlowDocument using File
  • 如何在WPF中绘制可点击的矩形

    我是 WPF 应用程序的绝对初学者 需要一些帮助 我想做的就是从 A 点到 B 点画一个矩形 and能够检测何时单击矩形 因此 当单击它时 它会变成黄色 再次单击时 它会变成红色 有多种方法可以做到这一点 向矩形添加单击处理程序 并从后面的
  • 键入任何 不能符合 Hashable

    我正在使用 Swift 5 7 新功能 并尝试实现一些异构集 我已将代码简化为这个简单的游乐场 protocol Stuff Hashable var identifier String get struct StuffA Stuff le
  • Java字符串数组反转

    我试图反转 java 数组中的所有字符串 但似乎用第一个字符串覆盖了所有字符串 private static void palindrome String s int flag 0 String reverse for int i 0 i
  • 学习如何分析项目

    我刚刚偶然开始为我公司的一个客户 中小企业 分析一个项目 我是一名 Net 开发人员 5 年 在分析软件方面经验很少 来自学校的 UML 我们刚刚结束了与用户两周的交谈 并得到了一份不错的需求清单 显然 我们已经过滤掉了最重要的需求 并且必
  • 使用 fetchedResultsController 删除表视图中的行

    在 swype 删除期间 此方法最重要的几行 void tableView UITableView tableView commitEditingStyle UITableViewCellEditingStyle editingStyle
  • 如何在 ActionScript 3 中获取用户的屏幕分辨率?

    ActionScript 3 有没有办法检测用户的屏幕分辨率 这些会将数字返回到输出窗口 trace Capabilities screenResolutionX trace Capabilities screenResolutionY
  • Netty:如何处理从 ChunkedFile 接收到的块

    我是 netty 新手 我正在尝试将分块文件从服务器传输到客户端 发送块工作得很好 问题在于如何处理接收到的块并将它们写入文件 我尝试的两种方法都会给我带来直接缓冲区错误 任何帮助将不胜感激 Thanks Override protecte
  • 使用 LINQ to Entities 将多条记录插入表的正确方法

    正如我们许多人所做的那样 我设置了一个简单的循环来从数据库添加多个记录 一个典型的例子是这样的 方法一 A list of product prices List
  • 从图像中删除周围的空白

    我有一组从客户那里收到的产品图片 每张产品图片都是某物的照片 并且是在白色背景下拍摄的 我想裁剪图像的所有周围部分 但只保留中间的产品 这可能吗 举个例子 http www 5dnet de media catalog product d
  • Eclipse 如何针对第三方框架进行代码补全?

    How does the Eclipse editor work to enable code completion For example within the XML editor for Hibernate property file
  • 非静态内部类对象不再被引用后会被垃圾回收吗?

    我有一个类似于以下的 spring bean public class MyServiceImpl private MyDAO myDAO public class MyInnerClass implements SomeInterface