Java ClassLoader(클래스로더)에 관한 기본적인 이해 -1
2022. 2. 18. 04:18ㆍJava
반응형
Java ClassLoader란?
자바 클래스 로더는 JVM에서 핵심적인 역할을 한다.
JVM이 뭔지 상세히 알고 싶다면 아래 글로 오길 바란다.
자바 클래스로더는 JVM으로 동적 로드하는 자바 런타임 환경(JRE)의 일부이다.
이름에서 알 수 있듯이 '클래스'를 '로드'하는 녀석이다. 어떻게? 동적으로!
(동적 링크 라이브러리에서 필요시 CPU 호출에 의해 링크, 적재 된다.)
일반적으로 클래스들은 요청 시 한 차례만 로드된다. 자바 런타임 시스템은 클래스로더 덕분에 파일과 파일 시스템에 대해서 알 필요가 없다.
(일방적으로 이 역할을 클래스로더에게 위임한다.)
JVM이 시작되면 먼저 3개의 클래스 로더들이 사용된다.
- 부트스트랩 클래스 로더
- 확장 클래스 로더
- 어플리케이션 클래스 로더
부트스트랩 클래스 로더는 3가지 클래스로더 중 최상위 클래스로서, <JAVA_HOME>/jre/lib 디렉터리에 위치한 핵심 자바 라이브러리들(JDK 클래스 파일)을 불러들인다. Native C로 구현되어 있다.
확장 클래스 로더는 확장 디렉토리 <JAVA_HOME>/jre/lib/ext 폴더나 java.ext.dirs 환경 변수로 지정된 폴더에 있는 클래스 파일을 로딩한다.
어플리케이션 클래스 로더는 -classpath(또는 -cp)나 JAR 파일 안에 있는 Manifest 파일의 Class-Path 속성값으로 지정된 폴더에 있는 클래스를 로딩한다.
반응형
'Java' 카테고리의 다른 글
logging이란? (0) | 2022.02.23 |
---|---|
(Java) JDBC란? (0) | 2022.02.20 |
JAVA - JVM에 대해 알아보자 -1 (0) | 2022.02.18 |
(JPA) JPA가 뭐야?? 이거 왜 쓰는거야? (0) | 2021.11.18 |
(Java) InetSocketAddress, HttpHandler 문법 및 사용 (1) | 2021.07.05 |