JVM, 가비지컬렉터(GC) 개념 및 동작원리 정리 (면접용 간단 키워드 정리)
- 최초 등록일
- 2022.04.22
- 최종 저작일
- 2022.03
- 7페이지/ MS 워드
- 가격 3,000원
소개글
"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내의 인덱스
참고 자료
없음