자바 클래스 파일을 JVM으로 들이는 객체.
같은 이름의 클래스여도, 서로 다른 클래스 로더로 로딩 시, 다른 클래스로 인식됨.
클래스 이름 + 로더 조합
ex) 도서관 예시
클래스 로더는 사서임.
사서가 책장에 책을 꽂음
→ JVM은 책장에 꽂힌 책을 읽음.
근데 사서 여러명이 책을 꽂는 경우
(사서 + 책)이 일치해야 같은 책으로 인식함.
부트스트랩 클래스로더
: JVM 시작 시, 가장 최초로 실행되는 클래스 로더
최소한의 자바 클래스들(java.lang.Object, java.lang.Class 등)를 로드함.
확장 클래스로더 (플랫폼 클래스로더)
: 부트스트랩 클래스로더를 부모로 하는 클래스 로더
확장 자바 클래스들(java.ext.dir 내 클래스파일, ${JAVA_HOME}/jre/lib/ext 내 클래스 파일 등) 로드함.
어플리케이션 클래스로더 (시스템 클래스로더)
: 우리가 만든 자바 바이트 코드 .class 확장자 파일 로드