<aside>
<aside>
자바 코드를 작성하고 실행하면, 당연하다는 듯 main()
이 실행된다.
하지만 그 전에 JVM은 과연 무슨 일을 하고 있을까?
클래스를 ‘불러오는’ 일은 우리가 직접 신경 쓰지 않아도 JVM이 알아서 해준다
그런데 이 과정은 단순히 "파일을 메모리에 올리는 것"이 아니다.
JVM은 놀라울 정도로 체계적인 절차를 거쳐 클래스를 메모리에 적재하고,
클래스 로더(ClassLoader) 라는 특수한 객체가 이 모든 일을 조율한다
특히 JVM의 클래스 로딩에는 중요한 철칙이 하나 있다
바로, 부모에게 먼저 물어보는 것 — 이것이 바로 **부모 위임 모델(Parent Delegation Model)**이다
이번 JVM 시리즈 3편에서는
하나씩 차근히 들여다보려 한다
</aside>
Class
객체로 만듦JVM이 사용하는 클래스 로더는 계층적으로 구성돼 있음
클래스 로더 | 역할 | 로딩 위치 |
---|---|---|
Bootstrap | 최상위 클래스 로더 | rt.jar 등 JVM 핵심 클래스 |
Extension | 확장 기능 로더 | $JAVA_HOME/lib/ext |
Application | 우리가 작성한 코드 로더 | classpath (ex: /bin , /target/classes ) |
String
, Object
같은 기본 클래스 충돌 방지 가능