자바 인터뷰에서 질문을 받았습니다. 부모 델리 게이션 모델 때문에 Java 클래스 로더는 클래스를 한 번만로드합니다. 그래서 내 대답은 그것을로드하는 사용자 정의 클래스 로더를 사용하는 것입니다. 그게 맞습니까? 이 질문에 대답하는 방법?JVM에서 클래스 로더를 사용하여 클래스를 두 번로드하는 방법은 무엇입니까?
0
A
답변
2
다릅니다. 정규화 된 이름이 java.
으로 시작하는 클래스는 부트 스트랩 로더에 의해서만로드 될 수 있으므로 두 번째로로드되지 않습니다. 부트 스트랩 로더에 의해로드 된 다른 모든 클래스는 상위 위임 모델을 따르지 않는 사용자 정의 클래스 로더 구현으로 만로드 될 수 있습니다. 부트 스트랩 로더는 모든 로더의 부모입니다.
ClassLoader
인스턴스로로드 된 모든 클래스의 경우 상위 위임 모델을 따르는 표준 클래스 로더를 생성 할 수 있지만 해당 로더를 부모로 가질 수 없습니다. 물론 위임 모델을 따르지 않고 사용자 정의 로더를로드 할 수도 있습니다. 선택은 같은 로더에 의해 원래로드 된 해당 클래스가 참조하는 다른 클래스를 처리하려는 f}에 따라 다를 수 있습니다. 해당 환경의 전체 복사본을 만들거나 원래 로더로 로딩을 리디렉션하려고 시도 할 수 있습니다. 이렇게하면 역 참조가있을 때 문제가 발생합니다. 두 번
public class ReloadMySelf {
public static void main(String[] args) throws IOException, ClassNotFoundException {
final Class<?> o = ReloadMySelf.class;
URL loc = o.getProtectionDomain().getCodeSource().getLocation();
ClassLoader parent = o.getClassLoader().getParent();
try(URLClassLoader cl = new URLClassLoader(new URL[]{loc}, parent)) {
Class<?> duplicate = cl.loadClass(o.getName());
System.out.println("original: "+o+" ("+o.getClassLoader()+')');
System.out.println("duplicate: "+duplicate+" ("+duplicate.getClassLoader()+')');
}
}
}
관련 문제
- 1. 별도의 클래스 로더를 사용하고 동일한 JVM에서 실행하는 방법은 무엇입니까? (OSGI)
- 2. JUnit을 사용하여 Maven 프로젝트에서 동일한 클래스를 두 번로드하는 방법
- 3. java 클래스 로더를 사용하여 배열 클래스를 얻는 방법은 무엇입니까?
- 4. 다른 jar 버전에 대한 클래스 로더를 분리하는 방법은 무엇입니까?
- 5. LoaderManager : 여러 다른 로더를 사용하여 올바른 로더를 얻는 방법은 무엇입니까?
- 6. XMLDecoder 용 클래스 로더를 설정하는 방법은 무엇입니까?
- 7. 유니버설 클래스 로더를 올바르게 사용하는 방법은 무엇입니까?
- 8. 클래스 로더를 사용하여 다른 클래스를 확장하는 클래스로드 중
- 9. 클래스 로더를 내리기
- 10. 클래스 로더에서로드 된 클래스를 제거하는 방법은 무엇입니까?
- 11. 클래스 로더를 사용하여 스프링 빈을 인스턴스화하는 방법은 무엇입니까?
- 12. Iframe에서 페이지를 두 번로드하는 이유는 무엇입니까?
- 13. vue가 messange를 두 번로드하는 중
- 14. JVM에서 싱글 톤을 수정하는 방법은 무엇입니까?
- 15. 클래스 로더를 통해 JARS를 무시합니다.
- 16. 부트 로더를 디버깅하는 방법은 무엇입니까?
- 17. jar에서 클래스를로드하기 위해 사용자 정의 클래스 로더를 작성하는 방법은 무엇입니까?
- 18. 클래스 로더를 사용하여 서버에서 클라이언트로 클래스 파일로드하는 방법
- 19. 안드로이드에서 데이터를 한 번로드하는 방법은 무엇입니까?
- 20. 클래스 로더를 누설하고있는 javax.xml.bind.DatatypeConverter?
- 21. Eclipse에서 다른 버전의 플러그인을 두 번로드하는 중
- 22. 클래스 및 jvm에서 활성 객체를 가져 오는 방법은 무엇입니까?
- 23. groovy 클래스 로더를 사용하여 Pdf 파일을로드하지 않습니다.
- 24. Yourkit으로 내 webapp의 클래스 로더를 찾는 방법은 무엇입니까?
- 25. Scala RemoteActors에서 클래스 로더를 설정해야하는 이유는 무엇입니까?
- 26. 모듈 로더를 확장하는 가장 좋은 방법은 무엇입니까?
- 27. 춘분으로 번들에 대한 클래스 로더를 얻는 방법은 무엇입니까?
- 28. bool을 사용하여 클래스에서 두 번로드하는 것을 방지하는 방법
- 29. 클래스 경로에서 중복 클래스를 찾는 방법은 무엇입니까?
- 30. onclick jquery로 두 번로드하는 비디오 자막
당신이 * 클래스를로드 의미합니까 * :
다음 코드 예제
는 접근 방식을 보여줍니다? – EJP@ EJP 예, 맞습니다 – flower
두 개의 다른 클래스 로더를 사용합니다 –