2016-07-29 4 views
1

사양에 따라 상수 풀 정의에서 CONSTANT_String, CONSTANT_Integer, ...을 별도의 고유 태그로 지정해야하는 이유는 무엇입니까?분리 된 태그가 정수 풀에서 사용되는 이유

다른 태그와 마찬가지로 이러한 태그를 CONSTANT_Class 태그로 처리 할 수없는 이유는 무엇입니까?

이것은 단지 시스템 클래스이기 때문입니까? 그렇다면 언급 된 것 이외의 다른 시스템 클래스가 있습니다.

는 여기에 읽기 : https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.4

답변

2

것은 그들이 값이 아닌 클래스이기 때문에.

CONSTANT_Class 태그는 CONSTANT_Class_info 구조체에서 "클래스 또는 인터페이스를 나타내는 것으로"즉 클래스의 인스턴스가 아닌 클래스를 사용합니다.

CONSTANT_String 태그는 문자열 값을 나타내는 데 사용됩니다. String 클래스가 아닌 "foo"입니다.