클래스 로더의 역할 이해
Java에서 클래스를 로드할 때 런타임은 클래스 로더를 사용하여 어떤 버전의 클래스를 로드할지 결정합니다. 인스턴스화합니다. 애플리케이션의 각 스레드는 기본 클래스 로더를 재정의하는 자체 스레드의 컨텍스트 클래스 로더(TCCL)를 가질 수 있습니다.
TCCL 대 일반 클래스 로더
TCCL과 클래스의 일반 클래스 로더(NCL)는 다르며 TCCL이 우선합니다. 즉, NCL을 사용하여 로드된 클래스 대신 TCCL을 사용하여 로드된 클래스가 사용됩니다.
TCCL을 사용하는 경우
그러나 문서에서는 TCCL. 대신 애플리케이션은 NCL을 사용하여 클래스를 로드해야 합니다. TCCL의 존재는 주로 클래스 로더를 지정하기 위한 매개변수가 부족한 ObjectInputStream API의 설계 결함으로 인해 발생합니다.
모범 사례
클래스 로딩 문제를 방지하려면 , 항상 NCL을 사용하여 클래스(getClass().getClassLoader())를 로드합니다. API에 클래스 로더 매개변수가 필요한 경우 이를 NCL과 함께 제공하세요. NCL을 사용할 수 없는 경우 API를 사용하기 전에 클래스 로더 매개변수를 허용하도록 API를 변경하거나 TCCL을 NCL로 설정하는 것이 좋습니다.
위 내용은 Java에서 TCCL(스레드 컨텍스트 클래스 로더)을 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!