정적 중첩 클래스는 정말 필요할까?
·
언어/Java
궁금증중첩 클래스 중 정적 중첩 클래스(static nested class), 내부 클래스(Inner Class)의 차이를 살펴보며 다음과 같은 궁금증이 생겼다. 캡슐화를 위해 내부 클래스를 쓴다면, 실제 인스턴스와 연관 있는 내부 클래스(Inner Class)를 쓰면 되지, 왜 굳이 외부 인스턴스와 무관한 정적 중첩 클래스(static nested class)를 써야 할까?" 왜?! 정적 중첩 클래스를 사용할까? 1. 불필요한 외부 인스턴스 참조 제거(메모리 누수 방지)내부 클래스는 컴파일 시 자동으로 외부 클래스의 참조(this$0)를 갖는다.이건 때때로 GC가 외부 클래스 인스턴스를 회수하지 못하게 만들 수 있음특히 콜백 구조나 멀티스레딩 상황에서는 의도치 않은 메모리 누수(leak)로 이어질 수 ..