Presentation is loading. Please wait.

Presentation is loading. Please wait.

자바 가상 머신 프로그래밍 9. 자바 클래스 파일의 내부 구조 Pslab 오민경.

Similar presentations


Presentation on theme: "자바 가상 머신 프로그래밍 9. 자바 클래스 파일의 내부 구조 Pslab 오민경."— Presentation transcript:

1 자바 가상 머신 프로그래밍 9. 자바 클래스 파일의 내부 구조 Pslab 오민경

2 Contents 클래스 파일의 내부 구조 클래스 파일 헤더 상수 풀 클래스에 관한 정보 필드와 메소드 클래스의 속성
그 외 속성

3 클래스 파일의 내부구조 클래스 구조 ( p192 그림 6.1 참고 ) 클래스 파일 헤더 상수 풀 클래스에 관한 정보
필드와 메소드 클래스의 속성

4 클래스 파일의 내부구조 (cont.) 자바 소스 ( p251 소스 참고 ) Oolong 소스 ( p58 소스 참고 )
DumpClass 프로그램 클래스 파일을 바이트 단위로 분석해 주는 프로그램 결과 출력 1열 : 파일내의 오프셋 (16진수로 표현) 2열 : 그 위치에서의 바이트 값 (16진수로 표현) 3열 : 바이트 값들을 해석한 것 cafebabe magic = ca fe ba be minor version = d major version = 45

5 클래스 파일 헤더 클래스 파일 헤더 매직 수 클래스 파일로 인식되기 위해 필요한 정보 매직 수 : CAFEBABE 부 버전 주 버전 p252 코드 참고 클래스 파일 내의 대부분의 숫자는 별다른 언급이 없는 경우에 부호 없는 정수로 취급한다.

6 상수 풀 상수 풀 p253 코드 참고 상수 풀을 사용하는 목적 상수 개수 상수(태그와 데이터)의 리스트
태그 : 어떤 종류의 상수인지를 의미 p255 표 9.1 참고 0번 엔트리는 가상 머신 자체의 사용을 목적으로 예약되어 있다. p253 코드 참고 상수 풀을 사용하는 목적 클래스 파일 내의 모든 곳에서 쉽게 참조될 수 있도록 상수 값을 한 데 모아 놓기 위함이다.

7 상수 풀 (cont.) UTF8 엔트리 (태그 1) 숫자 상수 엔트리 (태그 3,4,5,6)
임의의 스트링을 저장하기 위해 사용 가변길이 정보를 저장하기 위하여 다른 상수에 의해 사용된다. 데이터의 길이를 의미하는 2바이트로 시작 숫자 상수 엔트리 (태그 3,4,5,6) Integer와 long 상수는 각각 32비트와 64비트 사용, 2의 보수인 부호 있는 정수로 표현 Float와 Double 상수는 각각 32비트와 64비트 사용, IEEE 754 부동 소수점 포맷에 따르는 부동 소수점 실수로 해석 필드, 메소드, 클래스 엔트리 (태그 9,10,11) 필드나 메소드 명령어에서 필드나 메소드를 참조하기 위해 사용된다.

8 클래스에 관한 정보 클래스에 관한 정보 P259 코드 참고 접근 플래그 This 클래스 슈퍼 클래스 인터페이스 카운트
클래스 차원의 접근 정보 (비트 벡터로 해석) P260 그림 9.1, 표 9.3 참고 This 클래스 이 클래스의 이름을 의미하는 상수 풀 내의 상수를 가리킨다. 슈퍼 클래스 인터페이스 카운트 인터페이스 리스트 P259 코드 참고

9 필드와 메소드 필드와 메소드 생성자 메소드는 명시하지 않아도 자동으로 추가 P260 코드 참고 필드 개수
필드(접근 플래그, 이름, 설명자, 속성)의 리스트 필드 속성 필드 속성 개수 필드 속성(이름, 데이터 길이, 데이터)의 리스트 메소드 개수 메소드(접근 플래그, 이름, 설명자, 속성)의 리스트 메소드 속성 메소드 속성 카운트 메소드(속성 이름, 길이 데이터)의 리스트 생성자 메소드는 명시하지 않아도 자동으로 추가 P260 코드 참고

10 필드와 메소드 (cont.) Code 속성(메소드 속성)의 데이터 스택의 최대 높이 지역변수의 최대 개수 메소드의 실제 코드
코드의 길이 Opcode와 약간의 인자로 구성된 명령어의 리스트 예외 테이블 개수 예외 테이블 리스트 Code 속성 자체에 대한 속성의 개수 속성(이름, 길이, 데이터)의 리스트 디버깅정보와 같은 코드 자체에 대한 정보를 저장하는데 사용 Ex. LineNumberTable 속성

11 클래스의 속성 클래스의 속성 클래스 파일 속성 카운트 클래스 파일 속성(이름, 길이 데이터)의 리스트 P267 코드 참고

12 그 외 속성들 ConstantValue 속성 Exceptions 속성 InnerClasses 속성 p268 코드 참고


Download ppt "자바 가상 머신 프로그래밍 9. 자바 클래스 파일의 내부 구조 Pslab 오민경."

Similar presentations


Ads by Google