JVM 이해하기

‍박태우·2024년 9월 2일

nbc_spring

목록 보기
6/28

JVM 이란?

  • JVM (Java Virtual Machine) : 어느 기기(운영체제) 에서나 자바를 실행 시킬 수 있는 가상의 기기를 만들어 주는 것을 의미한다.

-> 위와 같은 과정을 통한 jvm 을 통해 java 어플리케이션을 실행 할 수 있다.
(만약 jvm 이 없으면 설정해야 할 것이 정말 많다.)


필요한 개념 용어

-바이트 코드 : 운영체제가 읽을 수 있는 코드로 Java 컴파일러가 변환한 코드
(컴파일러 : java 파일을 .class 파일로 변환 운영체제가 읽을 수 있도록 함

  • 바이트 코드의 모습

-인터프리터 : 일종의 java .class 코드 해석기로서, 운영체제가 읽은 바이트코드를 기기(기계)가 실행 할 수 있도록 기계어로 번역한다.

-JIT (Just In Time) 컴파일러 : 인터프리터의 효율을 높여준다.

-메모리 영역 : 운영체제로부터 JVM이 할당받은 메모리 영역

-클래스 로더 : Java .class 바이트 코드를 메모리 영역에 담는 일종의 "운반기"

-가비지 컬렉터 : 메모리영역에서 안쓰이는 데이터를 주기적으로 흡수해 간다.

  • 대략적인 구조 정리

JRE (Java Runtime Environment)

  • 자바(class)를 실행할 수 있는 환경
    (하지만 환경일 뿐이기에 더 필요한 요소들이 존재한다,
    java 파일을 class 파일로 옮기는 것과 같은 활동은 불가능한 환경이다.)
    => 그래서 필요한게 JDK (Java Development Kit)

JDK (Java Development Kit)

  • JRE 를 포함하고 있을 뿐만 아니라 .java파일을 .class파일로 변환해 주는 Java Compiler (javac) 기능이 있다.
  • 코드를 디버깅하는 jdb 등의 기능도 있다.
profile
잘 부탁드립니다.

0개의 댓글