java - 对单例封闭实例有隐式引用的匿名类实例会导致内存泄漏吗?

标签 java memory memory-leaks singleton

public class Singleton {

  public void processRequest(final List<a> aList) {

      List<b> bList = new AbstractList<b>() {
              b get(int i) {
                   return (b)aList.get(i); 
              }

              int size() {
                   return aList.size();
              }

             ......
      }

  }

这里创建了一个匿名实例,并隐式引用了封闭实例。由于封闭实例是一个始终存在于 JVM 中的单例,这是否会阻止匿名实例被 GC 声明并导致内存泄漏?

任何帮助表示赞赏!

最佳答案

不,这里没有内存泄漏。可以收集引用非垃圾对象的对象;只有被非垃圾对象引用的对象才能成为垃圾。

关于java - 对单例封闭实例有隐式引用的匿名类实例会导致内存泄漏吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8981458/

相关文章:

iOS内存泄漏分析

java - 如何解决此错误 : HTTP Status 500 - Internal Server Error

java - 插件开发错误

Java - 给定条件合并列表对象

c++ - 如何确定对象的对齐方式

c# - 可能的内存泄漏?

java - 发送文件时在同一个套接字连接上发送消息

java - JVisualVM/JConsole 中的 System.gc() 与 GC 按钮

c++ - 如何正确删除 vector 中的对象

c - 在函数内部分配内存时发生内存泄漏