-
JVM? JDK? JRE? 개념을 정확히 알아보자프로그래밍 언어/Java 2024. 2. 27. 10:05
JVM(Java Virtual Machine)이란?
자바 가상 기계라는 뜻을 가지고 있다. 자바 파일을 실행시키기 위해 필요한 것으로써, 어떤 운영체제에 구애 받지 않고 자바 파일을 실행가능하도록 만든다.
.java 파일이 작동하기까지 흐름?
- .java파일을 컴파일러를 통해 .class파일로 변환
- Java Virtual Machine에서 구동
JVM의 구성?
JVM은 대표적으로 아래의 기능들로 구성되어 있다.
- 바이트코드 :: java compiler를 통해 .java파일을 변환한 .class파일
- 인터프리터 :: .class파일을 기계가 이해할 수 있는 기계어로 변환하는 기능
- **JIT 컴파일러 :: 빠른 Java .class 코드 해석기...라고 하는데 이부분은 아직 이해가 되지 않았다.
- 가비지 컬렉터 :: 사용이 끝난 메모리 영역을 주기적으로 청소해 메모리 공간을 확보하는 기능
- 클래스 로더 :: .class파일을 JVM이 할당된 메모리 영역으로 옮기는 기능
- 메모리 영역 :: JVM이 운영체제로부터 할당받은 메모리 영역
JRE(Java Runtime Environment)이란?
자바 실행 환경으로 이해할 수 있다. JVM과 비교해서 굉장히 헷갈리는 개념이다. 둘다 Java파일을 실행시키는데 필요하다고 하는데 JRE는 .class파일로 변환된 .java파일을 '실행만' 가능하도록 만드는 환경이다. 즉, JRE가 JVM을 포함하는 상위개념이라고 이해할 수 있다.
JDK(Java Development Kit)란?
자바 개발 도구란 뜻으로 이해할 수 있다. 우리가 java로 개발하기 위해서는 반드시 필요한 기능이다. 또한, .java파일을 .class파일로 변환해주는 기능을 가지고 있다. 버전마다 지원하는 기능들이 다르며, 일단 디버깅 기능이 있다는 사실을 기억하자.
Java에서 Main의 의미?
자바로 만든 어플리케이션은 반드시 main 메서드가 존재하며 가장 먼저 실행되는 메서드이다.
이해가 안됐던 개념
JIT 컴파일러
'프로그래밍 언어 > Java' 카테고리의 다른 글
메서드 시그니처 (0) 2024.08.25 변수 개념과 활용 방법에 대해 알아보자 (2) 2024.02.28 Java 언어에 대한 이해 (1) 2024.02.26 객체지향 프로그래밍 파헤치기) 캡슐화를 알아보자! (1) 2023.12.15 JAVA 뽀개기) Collection - List에 대해 자세히 알아보자! (0) 2023.12.13