자바가상머신의 약자
JVM은 자바 애플리케이션을 Class Loader를 통해 읽어 자바 API와 함께 실행
스택 기반의 가상머신
JVM내로 클래스를 로드하고, 링크를 통해 배치하는 작업을 수행하는 모듈
바이트 코드를 실행하는 역할
바이트 코드를 한줄 씩 실행
인터프리터 효율을 높이기 위한 컴파일러, 인터프리터가 반복되는 코드를 발견하면
JIT 컴파일러가 반복되는 코드를 네이티브 코드로 바꿔줌, 그 다음부터 인터프리터는
네이티브 코드로 컴파일된 코드를 바로 사용
가비지 컬렉터로 힙 영역에서 사용되지 않는 객체들을 제거하는 작업을 의미
프로그램 실행 중에 사용되는 다양한 영역
Thread가 시작될 때 생성, 현재 수행중인 JVM 명령의 주소를 가지고 있음
지역 변수, 파라미터 등이 생성되는 영역, 실제 객체는 Heap에 할당, 레퍼런스만 Stack에 저장
동적으로 생성된 오브젝트와 배열이 저장되는 곳, GC의 대상 영역
클래스 멤버 변수, 메소드 정보, 타입 정보 static, final 변수 등이 생성
자바 애플리케이션에서 C, C++, 어셈블리어로 작성된 함수를 사용할 수 있는 방법을 제공
Native 키워드를 사용하여 메서드 호출, 대표적으로 Thread의 currentThread()
C, C++로 작성된 라이브러리