2012-04-18 5 views
0

나는 JVM 2-nd Ed.의 Artima에 따라 최근에 JVM 스펙에 대해 읽었다. Java 런타임에 저장되는 유형이 언급 된 장 중 하나는 다음과 같습니다.자바 가상 머신 : 타입 정보

java.lang.Class의 인스턴스는로드되는 모든 유형에 대해 Java 가상 머신에 의해 생성됩니다. 가상 머신은 어떤면에서는 메소드의 영역에있는 유형의 데이터와 유형에 대한 클래스 인스턴스에 대한 참조를 연관시켜야합니다.

나는 항상 Class 파일 형식 정보가 포함 된 장소에 파일을 생각하는 것처럼 조금 혼란스러워합니다. 자바 상점 유형 정보가있는 다른 곳이 있습니까?

답변

1

네, 그렇습니다. an instance of java.lang.Class이 생성되었습니다. 즉, 클래스 파일을 나타내는 오브젝트이 메소드 영역의 Class 파일뿐만 아니라 힙에 배치됩니다.

getClass() 개체를 호출 할 때 반환되는 Class 개체입니다.

+0

네, 그렇지만 REFERENCE를 클래스 파일과 유형 정보로 연결한다고합니다. 하지만 클래스는 형식 정보입니다. 왜 자체에 대한 참조가 필요합니까? – Bober02

+0

생성 된'Class' 객체는 메소드 영역의 클래스 데이터에 대한 참조를 포함해야합니다. 두 개의 다른 엔티티. 정보가 필요할 때 둘 사이의 연결을 만들 수 있습니다. 프로그래밍 방식으로 연결이 표시되지 않습니다. – Jivings

+0

그래서 Java에서'instanceof'를 실행하려고하면 객체의 포인터가 메소드 영역에 데이터를 입력하거나 해당 유형의 힙에있는 싱글 톤'Class' 객체를 가리키고 있습니까? – Bober02