클래스 로딩 메커니즘, 부모 위임 모델

  클래스 로딩기구 : 클래스 파일에서 가상 머신 클래스 설명 데이터는 메모리에로드하고, 데이터를 확인하고, 가상 컴퓨터로 사용할 수있는 Java 유형을 형성 초기화 파싱로 변환된다.


  클래스 로더 타이밍 : 메모리를 언로드까지 라이프 사이클 클래스는 가상 머신 메모리에 클래스에서로드됩니다.

  라이프 사이클 클래스 : 부하 하중이 ---> 연결 사용 ---> 초기화 초기화 ---> 사용 (검증 확인이 준비 구문 분석 해상도를 준비) ---> 제거 하역

  클래스로드
      로드
          1. 파일 클래스 바이트의 이진 스트림을 구하는
          동작 영역의 정적 방법으로 바이트 스트림 구성하면 동적 구조 (2)를
          메모리 (3)의 java.lang.Class 객체 클래스의 대표를 발생 이러한 액세스 입력 영역의 방법으로서.
      연결
          확인 : JVM이 요구 사항을 충족 포함되어 정보 바이트 스트림 클래스 파일을 확인하고 그 어떤 해의 JVM 자신의 보안을 보장 할 수 있습니다.
          제조 : 정적 변수를위한 메모리를 할당하고, 초기 값 할당
          분석 : 레퍼런스 심볼의 상수 풀은 직접 기준으로 변환되고
      초기화

          정적 변수의 실제 값이 소정 clinit 호 클래스 () 메소드, 정적 코드 실행 차단

  부모 프로세스의 모델을 위임 : 부모 클래스 로더 클래스 로더가 작업을 성공적으로 완료 반환 할 경우 특정 클래스 로더는, 회전 재귀의 클래스, 요청에 따라, 부모 클래스 로더를로드 위탁 첫 번째 작업을로드하는 데에만 부모 클래스 로더는이 작업 부하를 완료 할 수 없습니다 때, 그것을 자신을로드합니다.

  부모는 위임 모델 혜택 : 클래스 로더가 우선 순위 계층 구조와 함께이로 자바 클래스입니다. 예를 들어 다양한 클래스 java.lang.Object 상위를 들어, 궁극적으로 모델 부트 스트랩 클래스 로더로드에서 상위에 할당 된 클래스를로드하는 중 클래스 로더의 rt.jar, 존재, 그래서 프로그램의 Object 클래스 클래스 로더 환경은 같은 클래스입니다. 반대로, 자신의 단어를로드 할 부모 위임 모델 있지만 각 클래스 로더가없는 경우, 당신은 클래스 java.lang.Object 상위 클래스 경로와 같은 이름을 쓰고 Object 클래스가 나타날 것입니다 서로 다른 시스템의 숫자에 배치하는 경우, 프로그램은 혼돈 될 것입니다. 개발자가 같은 이름의 rt.jar 클래스 라이브러리와 자바 클래스를 작성하려고하면 따라서
정상적으로 컴파일 할 수 있지만, 실행로드 할 수 없습니다.

 

만 같은 클래스 로더의 가상 머신 및로드 두 개의 클래스는 클래스 이름이 클래스의 경우 것으로 판단되었을 때와 동일합니다. 부모 대리자 메커니즘을 적용하지 않고, 서로에 할당 문제가 동일 클래스의 복수는 두 개의 서로 다른 클래스로 식별 될 클래스 로더이다 로딩 할 수있다.

멀티 로더를 보장하기 위해 부모 위임 메커니즘이 클래스를로드 할 때, 마지막이 로더에 의해로드, 즉 최종 부하 동일한 결과를 보장합니다.

추천

출처www.cnblogs.com/hetaoyuan/p/11401799.html