728x90
반응형
VM명세서를 자꾸 까먹어서 간단하게 기록해두려고한다
우선 HelloWorld.java 를 작성 후 컴파일을 해서 뜯어보자
javap -v 명령어를 이용해서, 역어셈블리를 해보면 클래스파일의 자세한 정보를 확인 할 수 있다.
위의 클래스 구조를 표로 정리 한 것이다.
VM 명세서라고도 한다.
매직넘버 (magic number) | 0xCAFEBABE |
클래스 파일 포맷 버전 (version) | 클래스 파일의 메이저/마이너 버전 |
상수 풀 (constant pool) | 클래스 상수들이 모여 있는 곳 |
액세스 플래그 (access flag) | 클래스 종류를 표시 |
this 클래스 (this class) | 현재 클래스명 |
슈퍼 클래스 (super class) | 부모클래스명 |
인터페이스 (interface) | 클래스가 구현한 모든 인터페이스 |
필드 (field) | 클래스에 들어 있는 모든 필드 |
메서드 (method) | 클래스에 들어 있는 모든 메서드 |
속성 (attribute) | 클래스가 지닌 모든 속성 |
자바 최적화 책에서 클래스파일 구조 암기 비법을 알려줬다
My | Very | Cute | Animal | Turns | Savage | In | Full | Moon | Areas |
Magic | Version | Constant | Access | This | Super | Interfaces | Fields | Methods | Attributes |
My Very Cute Animal Turns Savage In Full Moon Areas
내 아주 귀여운 동물이 보름달 지역에서 야만적으로 변합니다
Magin Version Constant Access This Super Interfaces Fields Methods Attributes
참고자료
https://docs.oracle.com/javase/specs/jvms/se10/html/jvms-4.html
자바최적화 책
728x90
반응형
'자바' 카테고리의 다른 글
[자바] Form 데이터 파싱후 JUnit5로 테스트 (x-www-form-urlencoded) (2) | 2024.02.17 |
---|---|
[자바]Java Reflection: ModelMapper를 활용한 효율적인 객체 매핑 기법 (1) | 2024.02.11 |
[자바] 레코드(Records) : 코드 간결성과 효율성을 높이는 새로운 방법 (0) | 2024.01.28 |
[자바] Try-with-resources in Java: 코드를 깔끔하게 유지하는 현대적 방법 (0) | 2024.01.21 |
[자바] 문자열 관리: 언제 String, StringBuilder, StringBuffer를 사용해야 할까? (0) | 2023.10.23 |