jvm에는 위에서 아래로 사용자 정의 로더인 3개의 클래스 로더가 있습니다.
bootstrap classLoader 이 클래스 로더는 Java 가상 머신이 시작될 때 jdk 코어 클래스 라이브러리를 메모리에 로드합니다.
extension classLoader 확장 클래스 로더, 이 클래스 로더는 jre의 일부 jar를 로드하는 클래스 라이브러리입니다. 프로그램이 실행되는 동안 클래스 파일은 java.lang.classLoader
로드 메커니즘의 하위 클래스를 통해 동적으로 로드됩니다.
Java 클래스 로딩 메커니즘을 상위 위임 메커니즘이라고 합니다. 로더가 클래스를 요청하면 먼저 클래스가 메모리에 로드되었는지 여부를 아래에서 위로 쿼리하고, 로드된 경우에는 클래스를 직접 반환하며, 먼저 상위 클래스 로더에 로드를 맡깁니다. 현재 로더에 상위 클래스가 있으면 최상위 수준까지 다음 수준으로 위임합니다. 상위 클래스가 클래스를 로드할 수 없는 경우에만 자체적으로 로드할 수 없을 때까지 다음 수준으로 돌아갑니다. , 클래스를 찾을 수 없음 예외(ClassNotFoundException)를 반환합니다. 예를 들어 java.lang.String 클래스를 로드하기 위해 사용자 정의 로더가 필요한 경우 실제로 이를 로드하는 데에는 부트스트랩 classLoader가 사용됩니다. 왜냐하면 java.lang.String이 jdk의 핵심 라이브러리 클래스이기 때문입니다. 로더가 사용되면 먼저 상위 클래스 로더에 위임됩니다.
위 내용은 JAVA 개발의 classLoader 클래스 로딩 메커니즘에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!