[자바]클래스 로딩(동적인 클래스 로딩이란)

allnight5·2022년 11월 30일
0

자바 개념정리

목록 보기
14/28

클래스 로딩(Java Classloader에 의해서 이루어진다)

Class Loader는 자바 바이트코드를 읽어들여 클래스 객체를 생성하는 역할을 담당한다.

클래스 로딩 과정

Java에서 클래스가 로딩 과정은 클래스 로더(Class Loader)가 확장자가 .class 클래스 파일의 위치를 찾아 그것을 JVM위에 올려놓는 과정을 뜻합니다. 여기서 중요한 것은 우리가 만든 .class 확장자를 가진 클래스 파일을 로딩하기 전에 JVM을 실행할 때 이미 JVM을 실행하기 위해서 여러 클래스 파일들을 미리 로딩했다는 것입니다.

참조

클래스 로딩 순서

1.Bootstrap Class Loader는 JVM이 초기화 시 필요한 클래스(jre/lib/rt.jar 등)를 로딩한다.
2.Extension Class Loader는 $JAVA_HOME/jre/lib/ext내 클래스를 로딩한다. (Bootstrap과 Extension을 묶어 Bootstrap으로 표현하는 경우도 있다)
3.System Class Loader는 애플리케이션이 사용하는 클래스를 로딩한다.

##자바 스펙에 의해 Class Loader는 다음 조건을 충족해야 한다.
1.WEB-INF/lib보다 WEB-INF/classes를 먼저 로딩해야 한다. (의무사항)
2.war 파일 내부의 클래스를 컨테이너 레벨의 jar 파일보다 먼저 로딩한다. (권고사항)

동적인 클래스 로딩과 클래스로더

profile
공부기록하기

0개의 댓글