[TIL] JVM, JRE, JDK

노다현·2021년 1월 18일
0

TIL

목록 보기
3/8
post-thumbnail

▶️ HelloJava.java(소스파일) -> 자바 컴파일러(javac.exe) -> 바이트코드(*.class)

▶ 바이트코드(*.class) -> 자바 인터프리터(java.exe) -> 실행결과 출력

: 컴파일러를 거치고나면 (javac HelloJava.java) *이 HelloJava로 바뀐 후 바이트 코드가 생성되고 (파일 명과 클래스 명은 동일), 인터프리터를 거치면 (java HelloJava) 실행결과가 출력됨.


JVM (Java Virtual Machine)

  • 자바 가상 머신(Java Virtual Machine)의 약자
  • 자바는 어떤 운영체제에서도 동일한 형태로 실행시킬 수 있는데 이를 가능하게 해주는 것이 JVM이다.
  • JVM은 소스코드로부터 컴파일러를 통해 바이트코드(.class)가 만들어지면 인터프리터를 통해 이 코드를 실행해주는 가상머신
  • 실행환경(Runtime Environment)의 규격 제공
  • Java와 OS 사이에서 중개자 역할을 수행하여 Java가 OS에 구애받지 않고 재사용을 가능하게 해준다.
  • 각 플랫폼에 의존적이다. (리눅스 JVM과 윈도우 JVM은 다름)
    => 바이너리 파일(.class)만 만들면 각 플랫폼에서 동작 가능
  • 자바 프로그램의 메모리를 효율적으로 관리해주고 최적화해 준다. (Garbage Collection)

JRE (Java Runtime Environment)

  • 자바 실행환경(Java Runtime Environment)의 약자 (개발도구 제외)
  • JVM의 실행환경 구현
    -> JVM이 자바 프로그램을 실행시킬 때 필요한 라이브러리 및 기타 파일을 가지고 있음
  • JRE = JVM + Library Classes

JDK (Java Development Kit)

  • 자바 개발 도구(Java Development Kit)의 약자
  • JDK = JRE + Development Tools
  • Development Tools? 개발에 필요한 도구(컴파일러(javac.exe), 인터프리터(java.exe) 등)

profile
DAilyHYUN.log

0개의 댓글