[자바] 클래스 로더(Class Loader)에 대해

프로그래밍/자바2020. 12. 28. 22:00

클래스 로더는 런타임시 동적으로 JVM에게 클래스를 로딩해주는 역할을 합니다. 그래서 Class Loader라고 불립니다.

 

간단하게 정리해보겠습니다.

 

1. Bootstrap Class Loader

부트스트랩 클래스 로더는 일반적으로 rt.jar(runtime jar)와 $JAVA_HOME/jre/lib directory 경로에 위치한 코어 라이브러리를 읽습니다. 부트스트랩 클래스 로더는 다른 모든 클래스 로더의 부모입니다. 또한 core JVM에 있으며 java가 아닌 c와 같은 native code로 쓰여져 있습니다.

 

2. Extension Class Loader

Bootstrap Class Loader의 자식이며 standard core java 클래스의 extension을 담당합니다.

주로 $JAVA_HOME/lib/ext 경로와 시스템 프로퍼티 java.ext.dirs에 언급된 경로를 봅니다.

 

3. System Class Loader

Extension Class Loader의 자식입니다.

Application Class Loader라고도 불리는데 환경변수, -classpath나 -cp 커맨드 라인 옵션에 있는 classpath에 있는 파일들을 로드합니다.

우리가 이클립스 Java Build Path에 추가한.. 라이브러리들이 바로 이 Application Class Loader에 의해서 불립니다.

 

 

4. Custom ClassLoader

커스텀 클래스로더는 일반적으로는 필요가 없으나 네트워크 등으로부터 클래스를 읽어와야 할 경우 만들어서 사용할 수 있습니다.

 

 

자세한 내용은 참고의 글을 참고하세요~

 

참고

www.baeldung.com/java-classloaders

 

Class Loaders in Java | Baeldung

Have a look at the behind-the-scenes of loading Java classes during runtime to the JVM.

www.baeldung.com

 

작성자

Posted by 드리머즈

관련 글

댓글 영역