Будет ли передача объекта класса внешнего объекта в static static утечка памяти?
А как я могу проверить, не создаст ли это утечку памяти?
Ниже приведено то, что я ищу, где я создал внутренний и внешний класс, и как я планирую использовать и передать объект.
Мое главное сомнение в том, что я думаю, что в какой-то момент, даже если на объект 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();
}
}