LinkedIn

Java - Class Loader System과 Static Variables

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에 사용 가능한 메모리가 부족해지는 현상이 발생 할 수 있음

'자바 개발자되기' 카테고리의 다른 글

Java Reflection과 DI(Dependency Injection)  (0) 2020.11.07
추상 클래스와 인터페이스  (0) 2020.11.04
Database CASCADE와 OOP  (0) 2020.11.03
DTO vs VO  (0) 2020.11.01
Clean Architecture와 Spring MVC - 2. Spring MVC  (0) 2020.11.01