7JeY world

[면접질문] JVM이란? 본문

Interview/개발

[면접질문] JVM이란?

7JeY 2019. 1. 29. 11:56
반응형
면접(JVM)

JVM(Java Virtual Machine)

: 자바 가상 머신으로 자바 바이트 코드를 실행할 수 있는 주체

 

운영체제 위에서 동작하는 프로세스로 자바코드를 컴파일해서 얻은 바이트 코드를 해당 운영체제가 이해 할 수 있는 기계어로 바꿔 실행시켜 주는 역할을 한다.

Java와 OS사이의 중개자 역할 그리고 가장 중요한 메모리 관리 Garbage Collection을 수행한다.

크게 Class Loader, Execution Engine, Garbage Collection, Runtime Data Area 로 나뉜다.

 

Class Loader

JVM 내로 .class파일을 로드하고 링크를 통해 배치하는 작업을 수행하는 모듈

 

Execution Engine

클래스를 실행시키는 역할. 클래스 로더가 JVM 내의 런타임 데이터 영역에 바이트 코드를 배치 시키고 이것은 실행엔진에 의해 실행된다.

 

Garbage Collection


Eden, Survivor 0/1, Old, Permanent로 나뉜다.

새로 생성된 대부분의 객체 Eden에 위치

GC 한번 발생 후 살아남은 객체는 Survivor로 이동

일정시간 참조 되고 있다고 파악되는(GC가 여러번 일어났는데도 살아남아 있는 객체)객체는 Old영역으로 이동

 

Runtime Data Area

프로그램을 수행하기 위해 OS에서 할당받은 메모리 공간을 말한다.

반응형
Comments