java - 将外部对象类对象传递给静态内部会造成内存泄漏
问题描述
将外部对象类对象传递给静态内部会造成内存泄漏吗?
以及如何检查它是否会造成内存泄漏?
下面是我在寻找创建内部和外部类的位置,以及我计划使用和传递对象的方式。
我的主要疑问是因为我认为在某些时候,即使不再从任何地方引用 OuterClass 对象,它也不会被 GC 处理,因为 InnerClass (它是一个 STATIC 类)持有它的引用。所以,我觉得这会导致内存泄漏。
public class OuterClass {
private int id;
private String name;
public static class InnerClass{
OuterClass outerClass;
public InnerClass(OuterClass outerClass) {
this.outerClass = outerClass;
}
public void printOuterClassDetails(){
System.out.println(outerClass.getId() + " | " + outerClass.getName());
}
}
public OuterClass(int i, String string) {
this.id = i;
this.name = string;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public static void main(String[] args) {
OuterClass outerClass = new OuterClass(1, "A");
OuterClass.InnerClass innerClass = new InnerClass(outerClass);
innerClass.printOuterClassDetails();
}
}
解决方案
推荐阅读
- flutter - Flutter 中的颜色与颜色
- java - docker-selenium 节点不连接到集线器 - 没有到主机的路由
- tensorflow - 如何将隐藏状态向量从一个变压器直接馈送到不同的变压器层
- ios - 如何在 Swift 中使用单个图像运行 TFlite 对象检测?
- android - Android Recyclerview 部分创建/自定义/布局更改
- c# - 在 C# 中调用 web api
- c# - 切换启动项目时DLL访问不起作用
- ruby - 如何检查元素是否存在并附加字符串
- c# - 使用 dapper 将 JObject 列表插入 SQL Server
- python - Python中的绘图另存为空白图像?