Самоссылочные классы и загрузчик классов в Java - PullRequest
0 голосов
/ 22 января 2019

В следующем определении класса в Java

public class Node{

private Node next;
//other fields

// getter setter 

}

В указанном выше классе определения класса содержится ссылка на себя как next.

Как этот класс загружается в JVM, как я вижу, это рекурсивное определение?

1 Ответ

0 голосов
/ 22 января 2019

Загрузчик классов загружает класс только один раз.Поле next класса просто указывает, что поле с именем next имеет тип Node (статическая область JVM)
Это экземпляр, который может иметь рекурсивное отношение.(Область кучи JVM)

Node node1 = new Node();    
node1.setNext(node1);

В этом случае в области кучи создается только один экземпляр.
next в области стека будет указывать на адрес экземпляра node1.

...