Java 클래스가로드되면이 클래스에서 참조 된 클래스 (인스턴스화되지 않은 클래스)도로드됩니까? 참조 된 클래스가 인스턴스화되거나 정적 필드에 값이 할당 될 때까지로드되지 않습니다. 그러나,이 동작은 JVM이 JVM에 따라 다르다는 것을 알게되었습니다. 사실입니까?Java 클래스가로드되면이 클래스에서 참조 된 클래스 (인스턴스화되지 않은 클래스)도로드됩니까?
0
A
답변
0
클래스를로드하는 데 두 가지 오버로드 된 메서드가 있습니다.
loadClass(name, resolve);
loadClass(name);
해결 방법은 부울 플래그이며 true 일 때 참조 된 모든 클래스도 해결합니다. 거짓 일 때 참조 클래스를로드하지 않습니다.
로드 할 클래스에 대해 resolve 변수는 항상 true입니다. 시스템이 loadClass()를 재귀 적으로 호출 할 때만이 변수를 요청할 클래스가 이미 확인되었음을 알기 때문에이 변수를 false로 설정할 수 있습니다.
Here, loadClass(name); calls loadClass(name, false);
0
클래스는 을 사용할 때만로드됩니다.
ClassLoader에서 수행중인 작업을 인쇄함으로써 자신의 실험을 "증명"하는 것은 매우 쉽습니다. 그 방법에 대해서는 here을 참조하십시오.
l 이것은 으로 지정되어 있으며, JVM의 속성입니다. 의미 : 모든 JVM은 그렇게해야합니다 (자세한 내용은 here 참조).
그리고 알았습니다. 다른 것은 말이되지 않을 것입니다. 일부 클래스 은 10, 20 개의 다른 클래스를 참조 할 수 있습니다. 이로드 될 때 모든 수업을 정말로로드 하시겠습니까? 그리고 A의 해당 참조가 참조하는 10, 20 개의 클래스 모두?! 당신이 그들을 필요로하는지 알지 못하면서?!
관련 문제
- 1. 인스턴스화되지 않은 클래스 직렬화
- 2. Java : 인스턴스화되지 않은 객체 참조를 전달하는 방법은 무엇입니까?
- 3. Java 클래스에서 Java 클래스 호출
- 4. Spring 컨텍스트에 의해 인스턴스화되지 않은 클래스에서 Spring 트랜잭션이 롤백되지 않습니다.
- 5. 변수로 인스턴스화되지 않은 포인터를 삭제해야합니까?
- 6. 동일한 클래스에서 사용하는 클래스 참조 클래스
- 7. 다른 클래스에서 ArrayList를 참조 하시겠습니까? Java/Android
- 8. 클래스 정의되지 않은 참조
- 9. member가 인스턴스화되지 않은 경우에도 static_assert
- 10. 클래스에서 사용되는 클래스 결정
- 11. 정의되지 않은 참조 ... 배열을 선언하려는 중첩 클래스에서?
- 12. 참조 된 클래스 편집
- 13. 기본 클래스에서 주어진 참조 클래스 찾기
- 14. False CA1812 경고 : "명백하게 인스턴스화되지 않은 내부 클래스 ..."
- 15. 인스턴스화되지 않은 객체에 대한 클래스 함수를 인스턴스화하는 방법은 무엇입니까?
- 16. 기본 클래스에서 파생 된 개체 참조
- 17. Java 내부 클래스 용 클래스 참조
- 18. 프롤로그에서 인스턴스화되지 않은 변수를 피하는 방법은 무엇입니까?
- 19. Java 프로그램의 다른 클래스에서 한 클래스에서 인스턴스화 된 객체 호출
- 20. 파생 된 클래스에서 기본 클래스
- 21. C++ 코드에서 인스턴스화되지 않은 템플릿 찾기
- 22. R5 참조 클래스에서 클래스 메서드와 클래스 변수를 정의하십시오.
- 23. 클래스 :: 함수에 대한 정의되지 않은 참조
- 24. 메인 클래스에서 새 스레드를 시작하는 Java 클래스
- 25. 동일한 클래스에서 파생 된 클래스에서 파생되는 C++ 하위 클래스
- 26. C++ 클래스의 인스턴스화되지 않은 정적 멤버 변수로 인한 정의되지 않은 참조
- 27. 0xC00000005 인스턴스화되지 않은 포인터 포인터 오류
- 28. C#/NHibernate : 매핑 참조 된 매핑되지 않은 클래스 : MvcApplication7.Models.Comments
- 29. 아직 인스턴스화되지 않은 개체를 참조하는 방법
- 30. `is/2`에서 충분하게 인스턴스화되지 않은 인수
클래스 로딩의 심오한 부분을 배우려면 Java 언어 사양 및 JVM 사양을 읽으십시오. StackOverflow에 대한 질문은 너무 광범위하고 이미 다른 곳에서도 문서화되어 있습니다. –