LANGUAGE/JAVA

자바(JAVA) 프로그래밍 [컴파일러,바이트코드,JVM]

옐옐루 2023. 8. 22. 08:23

 

 

참조 : TCP SCHOOL.com

 

자바 컴파일러 (Java compiler) 

 

자바 컴파일러는 자바를 가지고 작성한 자바 소스 코드를 자바 가상 머신이 이해할 수 있는 자바 바이트 코드로 변환

자바 컴파일러는 자바를 설치하면 javac.exe라는 실행파일 형태로 설치 

 

자바 바이트 코드 (Java bytecode) 

 

자바 바이트 코드란 자바 가상머신이 이해할 수 있는 언어로 변환된 자바 소스 코드를 의미 

자바 컴파일러에 의해 변환되는 코드의 명령어 크기가 1바이트라서 자바 바이트 코드라고 불림

자바 바이트 코드 확장자는 .class 

자바 바이트 코드는 자바 가상 머신만 설치되어 있으면, 어떤 운영체제에서라도 실행될 수 있음 

 

자바 가상 머신 (JVM) 

 

자바 가상머신이란 자바 바이트 코드를 실행시키기 위한 가상의 기계

자바로 작성된 모든 프로그램은 자바 가상머신에서만 실행될 수 있으므로, 자바 프로그램을 실행하기 위해선 반드시 자바 가상머신이 설치되어 있어야 

 

자바 가상 머신의 구성

 

1. 자바 인터프리터(interpreter)

2. 클래스 로더(class loader)

3. JIT 컴파일러(Just-In-Time compiler)

4. 가비지 컬렉터(garbage collector)

 

자바 컴파일러에 의해 변환된 자바 바이트 코드를 읽고 해석하는 역할을 하는 것이 자바 인터프리터(interpreter)입니다.

 

자바는 동적으로 클래스를 읽어오므로, 프로그램이 실행 중인 런타임에서야 모든 코드가 자바 가상 머신과 연결됩니다.

이렇게 동적으로 클래스를 로딩해주는 역할을 하는 것이 바로 클래스 로더(class loader)입니다.

 

JIT 컴파일러(Just-In-Time compiler)란 프로그램이 실행 중인 런타임에 실제 기계어로 변환해 주는 컴파일러를 의미합니다.

동적 번역(dynamic translation)이라고도 불리는 이 기법은 프로그램의 실행 속도를 향상시키기 위해 개발되었습니다.

즉, JIT 컴파일러는 자바 컴파일러가 생성한 자바 바이트 코드를 런타임에 바로 기계어로 변환하는 데 사용합니다.

 

자바 가상 머신은 가비지 컬렉터(garbage collector)를 이용하여 더는 사용하지 않는 메모리를 자동으로 회수해 줍니다.

따라서 개발자가 따로 메모리를 관리하지 않아도 되므로, 더욱 손쉽게 프로그래밍을 할 수 있도록 도와줍니다.

반응형