package CHAPTER05;

class Node {
    Node next; // 다음 노드를 가리키는 참조 변수
    String name; // 노드 식별을 위한 이름

    Node(String name) {
        this.name = name;
    }

    void showNext() {
        if (next != null) {
            System.out.println(name + " → " + next.name);
        } else {
            System.out.println(name + " → null");
        }
    }
}

public class ObjectReference4 {
    public static void main(String[] args) {
        Node n1 = new Node("노드1");
        Node n2 = new Node("노드2");

        // 서로 참조하도록 설정
        n1.next = n2;
        n2.next = n1;

        // 현재 참조 관계 출력
        n1.showNext();  // 노드1 → 노드2
        n2.showNext();  // 노드2 → 노드1

        // 참조 해제
        n1 = null;
        n2 = null;

        System.out.println("n1과 n2 참조 해제됨 → 두 객체는 더 이상 접근 불가, GC 대상");
    }
}