All Honey Tip

[기술 면접] 7. JVM이 무엇인가요?

수정 일:

발행 일:

JVM이 무엇인가요?

저번 시간에 이어, 이번엔 JVM에 대한 면접 질문을 알아보겠습니다. JVM에 관련된 질문은 서비스 플랫폼 회사인 K사와 게임 회사 C사에서 마주했던 기억이 있습니다. 중요한 내용이니 반드시 숙지하고 가시길 권해드립니다.

JVM이 무엇인가요?




Q: JVM이 무엇인가요?

Java Virtual Machine으로, 자바 프로그램이 실행되는 가상 컴퓨터입니다. Java는 OS에서 실행되는 것이 아닌, JVM에서 실행됩니다.






Q: JVM의 주요 구성 요소는 무엇인가요?

JVM은 총 5가지로 구성되어있습니다.

  1. Class Loader(클래스 로더): Class 파일을 로드하고 메모리에 올립니다.
  2. Execution Engine(실행 엔진): Class 파일을 기계어로 번역하고 실행합니다.
  3. Memory Area(메모리 영역): JVM 메모리를 관리하는 공간으로 Heap, Stack, Method 영역이 있습니다.
  4. Garbage Collector(가비지 컬렉터): 더 이상 참조되지 않는 객체를 정리함으로써 메모리를 관리합니다.
  5. Native Interface(네이티브 인터페이스): 다른 언어와 상호 작용하기 위한 인터페이스를 제공합니다.






Q: Java 메모리 구조는 어떻게 되어있나요?

자바 메모리 구조는 크게 5가지로 구분됩니다. 스레드마다 PC Register, JVM Stack, Native Method Stack이 있으며 스레드 공통으로는 Method Area와 Heap이 존재합니다.

  • PC Register는 수행 중인 JVM 명령어가 들어가며
  • JVM Stack은 호출된 메소드의 매개변수, 지역변수, 리턴 정보들이 저장됩니다.
  • Native Method Stack은, 자바 외의 언어인 C나 C++같은 것들을 수행하기 위한 영역이고,
  • Method Area는 클래스 별로 전역변수, 정적 변수, 메소드 정보들이 저장되며,
  • Heap 영역은 런타임중 생성되는 객체들이 동적으로 할당되는 곳입니다.



마치며

이번 시간에는 JVM에 관련된 질문들을 간략하게 알아보았습니다. 이후 나올 내용들과 밀접한 관련이 있고 매우 중요한 기초 개념이니, 반드시 꼼꼼하게 준비하시길 권해드립니다.

다음 시간엔 Garbage Collection, GC에 대한 면접 질문들을 알아보겠습니다.

Java Generic 타입에 대해서 설명해주세요.


코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다