<aside> 💡 그럼 JVM은 어떻게 동작하는 것일까?
</aside>
중간에 JVM을 한 번 거치게 된다.
간단하게만 한번 보면 다음과 같다.
https://ahea.wordpress.com/2017/05/25/자바개발자가-알아야-할-jvm과-garbage-collection/
우선 JDK의 구조부터 보자.
https://medium.com/@mannverma/the-secret-of-java-jdk-jre-jvm-difference-fa35201650ca
이런 포함관계를 갖는다.
JDK(java development kit)
JRE(java runtime environment)
JVM(java virtual machine)
https://ahea.wordpress.com/2017/05/25/자바개발자가-알아야-할-jvm과-garbage-collection/
<aside> 💡 이제 JVM이 어떻게 class 파일을 기계어 코드로 변환하는지 알아보자.
</aside>
게층 구조를 바탕으로 클래스 로더끼리 호출을 위임한다. 클래스를 로딩할 때, 최상위 클래스로더인 부트스트랩 클래스 로더를 확인하고 이 클래스 로더에 로딩하려는 클래스가 없다면 자식 클래스 로더로 책임을 넘긴다.
위임 모델 다이어그램
https://d2.naver.com/helloworld/1230
클래스 로더가 아직 로드되지 않은 클래스를 찾을 때, 로딩 → 링킹 → 초기화 과정을 거친다.
https://d2.naver.com/helloworld/1230