JVM, 가비지컬렉터(GC) 개념 및 동작원리 정리 (면접용 간단 키워드 정리)
- 최초 등록일
- 2022.04.22
- 최종 저작일
- 2022.03
- 7페이지/
MS 워드
- 가격 1,400원

소개글
"JVM, 가비지컬렉터(GC) 개념 및 동작원리 정리 (면접용 간단 키워드 정리)"에 대한 내용입니다.
목차
없음
본문내용
JVM특징
1. 스택 기반
2. 심벌릭 레퍼런스로 참조한다.
3. 플랫폼 독립성 보장
4. 네트워크 바이트 순서는 빅엔디안
컴파일은 javac.exe파일이 수행한다.
자바바이트 코드 = 자바코드를 배포하는 가장 작은 단위
.java 파일을 JVM이 이해할 수 있는 바이트코드로 변환하고 .class 파일을 만드는데, 이 파일 안에 있는 데이터가 자바바이트 코드다.
자바바이트 코드에서 V는 ‘반환값 없음’이다.
실제로 컴파일 된 클래스 파일은 반환 값까지 지정된 메서드를 지정한다.
자바바이트 코드 타입 표현
B = Byte
C = Char
D = Double
L<classname>; = reference
S = Short
[ = 배열
OpCode = 자바바이트 코드에서 메서드 호출하는 명령어
OpCode 종류
1. invokeinterface = 인터페이스 호출
2. invokespecial = 생성자, private 메서드, 슈퍼클래스 메서드 호출
3. invokestatic = static 메서드 호출
4. invokevirtual = 인스턴스 메서드 호출
자바바이트코드 구성 = OpCode + 피연산자(Operand)
피연산자 필요 개수는 OpCode마다 다르다.
JVM명세에서 한 메서드의 크기를 65535바이트로 제한한다.
자바바이트 코드에서 일반적으로 사용하는 분기명령은 goto와 jsr 두 가지다.
클래스파일(.class) 포맷
1. magic = 첫 4바이트는 매직넘버. 자바클래스 파일이 맞는지 구분하는 용도
2. minor_version, major_version = 클래스의 버전. JDK버전마다 다른 값으로 보인다.
3. constant_pool_count = 클래스 파일 상수 풀의 개수
4. access_flags = public, final, abstract같은 클래스 변경자 정보를 나타낸다.
5. interface_count = 인터페이스 개수 및 인터페이스에 대한 constant_pool내의 인덱스
참고 자료
없음