Будет ли передача объекта класса внешнего объекта статическому внутреннему объекту утечка памяти - PullRequest
0 голосов
/ 02 января 2019

Будет ли передача объекта класса внешнего объекта в 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();
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...