Bootstrap ClassLoader
Extension ClassLoader
Application ClassLoader
Custom ClassLoader
로딩(Loading)
링킹(Linking)
클래스를 사용할 수 있도록 필요한 작업을 수행하는 과정이며, 다음 3가지 단계로 구성
① 검증(Verification)
.class 파일이 올바른 형식인지 검증
바이트코드 검증 및 보안 검사 수행 (잘못된 코드 실행 방지)
② 준비(Preparation)
클래스 변수(static 변수)들을 위한 메모리를 할당하고 기본값으로 초기화
ex: static int x = 10; → 초기에는 0으로 설정됨
③ 해석(Resolution)
참조(Reference) 변수를 실제 메모리 주소로 변환하는 과정
클래스 내부의 다른 클래스, 메서드, 인터페이스 등의 심볼릭 리퍼런스를 실제 메모리상의 주소로 변경
초기화(Initialization)
https://backendcode.tistory.com/161
https://steady-coding.tistory.com/305
https://inpa.tistory.com/entry/JAVA-☕-JVM-내부-구조-메모리-영역-심화편#
https://hstory0208.tistory.com/entry/Java-JVM-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EA%B5%AC%EC%A1%B0-%ED%8C%8C%ED%97%A4%EC%B3%90-%EB%B3%B4%EA%B8%B0-Static-Stack-Heap
https://s-y-130.tistory.com/111#Minor%--GC%EC%--%--%--Major%--GC%C-%A-%EC%-D%--%--%EB%-F%--%EC%-E%--%--%EB%B-%A-%EC%-B%-D