본문 바로가기

개발/Java

[JAVA] 자바 프로그래밍

728x90
반응형
자바 프로그램의 실행 과정

 

자바 프로그램의 실행 과정입니다.

 

< 자바 프로그램의 실행 과정( 출처 - tcpschool.com)

 

자바 클래스 파일(Java Class File)

 

자바 클래스 파일은 자바 프로그램을 구성하는 소스를 작성한 파일로 자바 소스 파일이라고 볼 수 있습니다.(.java)

 

 

자바 컴파일러(Java Compiler)

 

javac.exe 파일을 이용하여 자바 소스 코드를 자바 가상 머신이 이해할 수 있는 자바 바이트 코드로 변환합니다.

 

 

자바 바이트 코드(Java Bytecode)

 

자바  가상 머신이 이해할 수 있는 언어로 변환된 자바 소스 코드를 의미 합니다.(.class - 실행 파일)

자바 바이트 코드는 자바 가상 머신만 설치되어 있으면 어떤 운영체제라도 실행할 수 있으며, 자바 컴파일러에 의해 변환되는 코드의 명령어 크기가 1 바이트라서 자바 바이트 코드라고 불리고 있습니다.

 

 

자바 가상 머신(Java Virtual Machine, JVM)

 

자바 바이트 코드를 실행시키기 위한 가상의 기계라고 할 수 있습니다.

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

오라클은 대부분의 주요 운영체제뿐만 아니라 웹 브라우저, 스마트폰, 가전기기 등에서도 자바 가상 머신을 손쉽게 설치할 수 있도록 지원하고 있습니다.(Sun 사가 오라클 사에 인수 합병되면서 오라클 사에서 서비스 제공)

 

윈도우, 리눅스 등등의 운영체제에 맞는 버전으로 자바 가상 머신을 설치만 한다면 어느 운영체제에서든지 동일한 자바 프로그램을 실행하여 사용할 수 있습니다. (운영체제 이후 자바 가상 머신을 거쳐야 하므로 속도는 느림)

 

 

자바 가상 머신의 구성

 

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

 

자바 컴파일러에 의해 변환된 자바 바이트 코드를 읽고 해석하는 역할을 합니다.

 

2. 클래스 로더(class loader)

 

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

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

 

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

 

프로그램이 실행 중인 런타임에 실제 기계어로 변환해주는 컴파일러 입니다.

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

( 프로그램의 실행 속도를 향상 시키기 위해 개발 )

 

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

 

일명 쓰레기 수집가로 불리며 프로그램 실행 시 더는 사용하지 않는 메모리를 자동으로 회수해 줍니다.

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

 

 

여기까지 임미다.

 

728x90