JVM?, JDK?

박두팔이·2023년 12월 7일
0

자바

목록 보기
25/26

JVM(Java Virtual Machine)


자바는 컴파일러를 통해 기계어로 변환되는 언어다.

컴파일이란, 번역과정 이라고 할 수 있다.

  • 프로그래밍 언어 ➡️ 기계가 이해할 수 있는 언어
  • ex) java(언어) ➡️ 바이트코드로 변환
  • JVM(기계)이 이해할 수 있는 바이트코드(이해할 수 있는 언어)로 변환
  • 이런 과정을 거치면, JVM은 바이트코드를 운영체제에 맞는 기계어로 변환해준다.


JVM은 자바 프로그램을 실행시키는 도구다.
자바가 운영체제에 독립적이라는 큰 장점은 바로 JVM이 있기 때문이다.

자바소스코드를 컴파일러가 바이트코드로 변환하면 JVM은 각각의 운영체제에 맞는 기계어로 변환한다. 즉, JVM은 프로그램을 실행하는 프로그램이라고 할 수 있다.

프로그램이 제대로 실행되기 위해서는 컴퓨터의 다양한 자원이 필요로하다. 예를들어, CPU,RAM, 입출력장치 등이 있다. 운영체제는 이러한 자원을 관리해주며 프로그램은 운영체제가 정한 규칙을 따라야 한다. 따라서, 서로다른 운영체제(Linux, Windows, MacOs 등)에서 프로그램을 실행하기 위해서는 운영체제별 규칙을 따르는 별도의 절차가 필요하지만 JVM은 이 문제를 해결해준다.

JVM의 경우 JDK나 JRE를 설치하면 자동으로 설치된다. 자바는 JVM을 거치기 때문에 C나 C++에 비해 속도는 느린편이다. 하지만 JVM 내부의 최적화된 JIT 컴파일러를 통해 속도를 크게 개선해나가고 있다.


JDK(Java Development Kit)


자바설치와 관련하여, JDK와 JRE의 차이에 대해 알 필요가 있다.

JRE(Java Runtime Environment): JVM + 표준 클래스 라이브러리

  • "Runtime", 즉 실행과 관련

JDK(Java Development Kit): JRE + 개발에 필요한 도구

  • "Development", 즉 개발과 관련

자바 프로그램을 실행만 할 것이다? ➡️ "JRE"
자바 프로그램을 개발할 것이다? ➡️ "JDK"

JDK는 오라클JDK가 있고 오픈JDK가 있다. 이 둘은 차이가 있지만 OracleJDK는 오라클이 관리하는 버전, OpenJDK는 오픈소스라는 정도로 알고 일단 넘어가도 코드를 작성하는 데는 문제가 없다.

profile
기억을 위한 기록 :>

0개의 댓글