2024/12/22 2

[JVM 밑바닥까지 파헤치기] 6-2. 클래스 파일 구조: 바이트코드 명령어

저우즈밍 님의 "JVM 밑바닥까지 파헤치기" 책을 정리한 포스팅 입니다 1. 바이트코드 명령어길이1바이트 최대 256개의 연산 코드 표현 가능 데이터 타입명령어 자체에 해당 연산에 필요한 데이터의 타입 정보가 포함됨iload: int 타입 데이터 로드istore: int 타입 데이터 스토어 2. 로드지역변수를 피연산자 스택에 로드 3. 스토어피연산자 스택의 연산 결과를 지역변수에 저장 4. 산술 명령어피연산자 스택의 값 두 개를 이용해 특정한 산술 연산을 수행결괏값을 다시 피연산자 스택의 맨 위에 저장 정수int 타입용 명령어만 지원iadd, isub, imul, idiv, irem, ineg, ishl, ior, iand, ixor, iinc, dcmpg 부동 소수점IEEE 754 명세를 엄격히 따름근..

Java 2024.12.22

[JVM 밑바닥까지 파헤치기] 6-1. 클래스 파일 구조: 클래스 파일

저우즈밍 님의 "JVM 밑바닥까지 파헤치기" 책을 정리한 포스팅 입니다 1. 클래스 파일하위 호환성을 위해 예전부터 지금까지 기존의 구조를 유지한 채 확장되어왔음하나의 클래스 또는 인터페이스를 정의바이트를 하나의 단위로 하는 이진 스트림 집합체빅 엔디언 방식 2. 의사 구조ClassFile { u4 magic; // 매직 넘버 (0xCAFEBABE) u2 minor_version; // 클래스 파일의 마이너 버전 u2 major_version; // 클래스 파일의 메이저 버전 u2 constant_pool_count; // 상수 풀 항목의 개수 cp_in..

Java 2024.12.22