Back-End (Web)/JAVA

[JAVA] JVM은 뭘까?

JABHACK 2024. 11. 11. 09:34

<해당 내용은 내일배움 캠프의 강의를 토대로 제작되었습니다.>

 

JVM (Java Virtual Machine)의 약자로 "자바 가상 머신"이라는 뜻이다.

단순히 여러가지 기기위에 Java 프로그램을 실행 시킬 수 있는 가상의 기기를 만들어 준다.

= 컴퓨터나 핸드폰이라고 해서 자바가 실행되는 것이 아닌, JVM을 통해 컴퓨터나 핸드폰 안에 java를 실행할 수 있는 가상의 기기를 추가해야한다.

자바의 실행 과정

1. 프로그래머는 Java라는 인간이 이해할 수 있는 언어를 기반으로 프로그램을 제작한다.

2. 자바는 운영체제가 이해할 수 있는 형태로 java 언어를 변환하기 위해 Java Compiler를 통해 바이트 코드(운영체제가 이해할 수 있는 언어 형태)로 변환한다.

3. 바이트 언어를 또 기계가 이해할 수 있는 기계어로 번역해 줘야 기기들이 코드를 이해할 수 있는데, 이 번역해주는 부분이 인터프리터, 인터프리터의 효율을 높혀주는 부분이 JIT 컴파일러다.

 

인터프리터

  • 운영체제가 읽은 바이트 코드[운영체제 언어]를 기기(기계)가 실행할 수 있는 기계어로 번역

JIT 컴파일러

  • 인터프리터[운영체제 언어 번역기]의 효율을 높여주는 서포터 해석기

메모리 영역

  • 운영체제로부터 JVM[자바 실행용 가상 기기]이 할당받은 메모리 영역

클래스 로더

Java .class 바이트 코드[운영제제 언어]를 메모리 영역에 담는 운반기

  • JVM으로 class(바이트 코드 [운영제제 언어] )를 불러와서 메모리에 저장함

 

 

JRE

  • 자바의 대표적인 JVM으로, 자바 실행 환경(Java Runtime Environment) 이다.
  • 이게 설치되어 있는 모든 기기는 java 프로그램을 실행 시킬 수 있다.
  • JDK 가 javac 명령을 통해 .java 파일을 실행 가능한 .class 파일로 변환해 줍니다.
  • = 프로그래머가 짠 코드를 운영체제가 이해할 수 있는 코드로 변역해준다.

JDK

  • 자바 개발 키트(Java Development Kit)라는 뜻으로 Java의 개발이 가능하게 만들어주는 프로그램이다.
  • JRE를 포함하는 키트로 덕뿐에 자바의 실행이 가능하다.
  • JDK는 .java 파일들을 .class 파일들로 변환해 주는 Java Compiler(javac) 기능이 있다.
  • JDK는 코드를 디버깅(오류 확인, 추적)하는 jdb 등의 기능이 있다.

 

+ 디버깅(Debugging)은 소프트웨어 개발 과정에서 프로그램의 오류(버그)를 찾아내고 수정하는 작업을 말한다.

  • 프로그램을 한줄 한줄 실행하면서 오류가 있는 부분을 찾아낸다.

'Back-End (Web) > JAVA' 카테고리의 다른 글

[JAVA] 조건문  (0) 2024.11.11
[JAVA] 연산자  (0) 2024.11.11
[JAVA] 변수와 변수 종류  (0) 2024.11.11
[JAVA] 자바 개발을 위한 준비물 IntelliJ  (0) 2024.11.11
[JAVA] 자바란 무엇일까?  (0) 2024.10.31