클래스 로더란 JRE의 일부로써 자바 소스코드가 자바 컴파일러에 의해 컴파일된 결과인 자바 바이트 코드를 JVM의 메서드 영역(Method Area)으로 로드하는 역할을 한다.
부트 스트랩 클래스로더(BootStrap ClassLoader)
기본 클래스로더 중 가장 최상위 클래스 로더이며, 네이티브 언어로 작성되어있다.
확장 클래스로더(Extension ClassLoader) // Java9 부터는 플랫폼 클래스로더
부트스트랩 클래스로더를 부모 클래스로더로 갖는 클래스로더로써 확장 자바 클래스들을 로드한다.
어플리케이션 클래스로더(Application ClassLoader) // Java9 부터는 시스템 클래스로더
Classpath나 JAR파일안에 있는 Manifest 파일의 Class-Path 속성 값으로 지정된 폴더에 있는 클래스들을 로드한다. Java로 구현되어있으며, 개발자가 직접 작성한 클래스들은 주로 어플리케이션 클래스로더에 의해 로드된다.