자바 개발자되기
Java - Class Loader System과 Static Variables
sowhat92
2020. 11. 4. 00:04
클래스 로더
- 자바의 클래스 로더 시스템에는 로딩, 링크, 초기화가 존재
로딩
- .class 파일을 읽어서 클래스와 관련 된 정보(FQCN, 클래스, 인터페이스, ENUM, 메소드, 변수 ...)들을 JVM Memory 구조 중 메소드 영역에 저장
- FQCN(Full Qualified Class Name) : 해당 클래스가 속해있는 패키지명을 모두 포함 한 정보
링크
- Verify(검증) → Prepare →Resolve
- Prepare 단계에서 클래스에서 필요한 메모리 영역을 준비한다.
초기화
- 이 단계에서 Static Variables 값을 할당
- Runtime이 아닌 해당 단계에서 전역 변수에 값을 할당하기에 전역으로 사용 가능
- 다만, Static Variables 남발하게 된다면 초기화 시 필요한 메모리가 증가하면서 실제 Runtime에 사용 가능한 메모리가 부족해지는 현상이 발생 할 수 있음