ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JVM JRE JDK 역할 및 차이 + Java Program 동작 원리
    IT Common Sense 2021. 6. 1. 23:48
    반응형

    JVM(Java Virtual Machine)

    .java 로 생성된 소스코드를 컴파일하여 생성된 .class 인 바이트코드를 

    각각의 OS(리눅스, 윈도우, 맥) 에 맞는 코드로 변환하여 실행시킬 수 있게 해주는 도구

    이때 

    인터프리터로 코드의 명령어를 기계어로 변환하고 

    JIT 를 이용해 속도를 빠르게하고

    Garbage Collection 을 통해 메모리를 효율적으로 관리함

    즉, 바이트 코드 를 OS 에 맞게 변환하여 실행

     

    인터프리터 (Interpreter)

    코드의 명령어를 하나씩 기계어로 변환

    JIT (Just In Time)

    실행시 자주 사용하는 코드를 기계어로 변환하여 저장한 뒤 재사용하여

    느린 인터프리터의 속도를 빠르게 함

    Garbage Collector

    heap 영역(객체와 배열 저장)에 생성된 객체들 중 참조되지 않은 객체들을 메모리에서 제거



    JRE(Java Runtime Environment)

    JVM 이 JAVA 를 동작시킬 때 필요한 라이브러리 파일들을 갖고 있어 실행 할 수 있게 환경을 제공하는 설치 환경 도구

    즉, JRE = JVM + 환경 라이브러리

     

    JDK(Java Development Kit)

    java 실행 파일 + 자바 설치 환경 에 개발에 필요한 도구들을 갖춘 패키지

    즉, JDK = JRE + 개발 툴(ex. javac) 

     

    JAVA

    단순한 언어 => jdk 속 자바 컴파일러인 javac를 사용하여 .class 인 바이트코드로 사용가능함

    따라서 JAVA 언어를 이용하여 개발 하려면 JDK 가 필요하다. 

     

    Java Program 동작 원리

    JAVA (.java)파일을 

    JDK 속 자바컴파일러인 javac 로 컴파일 하여 자바 바이트코드(.class)로 변환하고

    JRE 에서 구축된 실행 환경을 바탕으로  

    JVM 속에서 OS 에 맞게 변환하여 실행한다.

     

    반응형

    댓글

Designed by Tistory.