언어/JAVA

JVM

nakgopsae 2024. 7. 8. 17:50

JVM이란?

Java Virtual Machine의 약자로 자바 가상 머신입니다

여러가지 기기에서 프로그램을 실행하기 위해 가상의 기기를 만들어 주는것을 의미합니다
//OS에 종속받지 않고 CPU가 JAVA를 인식, 실행할 수 있게 하는 가상 컴퓨터

 

바이트코드 / 컴파일러

바이트코드: java 프로그램 변환 코드 / 개발자가 작성한 코드가 운영체제가 읽을 수 있는 코드로 java 컴파일러가 변환한 코드

컴파일러: 개발자가 작성한코드들을 운영체제가 읽을 수 있는 바이트코드로 변환하는 변환기

 

 

인터프리터

java.class 코드 해석기
운영체제가 읽은 바이트 코드를 기기가 실행할 수 있는 기계어로 번역

 

JIT 컴파일러

빠른 Java .class 코드 해석기/ 인터프리터의 효율을 높여주는 서포터 해석기
//just in time 인터프리터와 세트로 효율을 높여준다

 

메모리 영역

Java 데이터를 저장하는 영역 / 운영체제로부터 JVM이 할당받은 메모리 영역

 

클래스로더

Java .class 바이트 코드를 메모리 영역에 담는 운반기 /JVM으로 class(바이트 코드) 를 불러와서 메모리에 저장함

 

가비지컬렉터

Java 쓰레기 청소기 / 메모리영역에서 사용하지 않는 데이터를 주기적으로 청소하는 역할

 

자바 소스 코드 작성 -> 컴파일러가 자바 소스코드를 바이트코드로 변환 -> JVM로드 -> 
클래스로더를 통해 필요한 클래스파일을 메모리에 적재한다 -> 바이트코드 검증 ->
인터프리터 / JIT컴파일러를 통해 기계어로 코드 해석 -> 런타임시스템 -> 프로그램 출력

 

개발환경구성

JRE

JRE는 Java Runtime Environment
자바 애플리케이션을 실행하기 위한 런타임 환경입니다.
이는 자바 프로그램을 실행하는 데 필요한 모든 것을 포함하는 소프트웨어 패키지입니다.

JRE(JVM)만 있다면 Java 프로그램을 실행만 시킬 수 있습니다
JRE는 .class 파일만 실행 가능합니다
JDK 가 javac 명령을 통해 .java 파일을 실행 가능한 .class 파일로 변환해 줍니다.

 

JDK

Java Development Kit
JDK는 자바 애플리케이션을 개발하기 위한 소프트웨어 개발 키트입니다.
이는 자바 프로그램을 작성하고 컴파일하는 데 필요한 도구와 라이브러리를 포함합니다.

JDK는 JRE를 포함하고 있어, 개발자들이 자바 애플리케이션을 개발하는 동안 프로그램을 실행하고 테스트할 수 있습니다.
자바 컴파일러 (javac), 디버거 (jdb), 문서 생성기 (javadoc), 아카이빙 도구 (jar) 등 개발에 필요한 다양한 도구가 포함됩니다.

-JDK 디버깅 기능 : JDK의 jdb기능을 통해 실행중인 프로그램의 코드실행을 따라다니며 볼 수 있습니다

디버깅 = 중단점 일시정지 + 코드 라인 단위 수행

 

'언어 > JAVA' 카테고리의 다른 글

wrapper class / 변수 +  (0) 2024.07.09
JDK 설치  (0) 2024.07.09
자바의 역사와 특징  (0) 2024.07.08
접근제어자  (0) 2024.06.26
final  (0) 2024.06.26