기본적인 작동 흐름을 정리해두자
소스 코드 작성:
자바 코드를 작성하면 .java 확장자를 가진 파일로 저장을 한다 !
컴파일:
작성한 자바 소스 코드를 javac라는 자바 컴파일러를 사용해서 컴파일한다.
이 과정에서 .java 파일이 .class 파일로 변환됨 !
이 파일에는 자바 바이트코드가 들어있다.
바이트코드:
자바 바이트코드는 자바 가상 머신(JVM)에서
실행할 수 있는 중간 형태의 코드이다.
모든 자바 프로그램은 바이트코드 형태로 실행됨 ->
자바가 플랫폼에 독립적인 이유 중 하나임 !!
실행:
바이트코드를 담은 .class 파일을 JVM이 실행함
JVM은 바이트코드를 한 줄씩 읽어서 실행한다.
이 과정에서 자바 바이트코드를 기계어로 변환함 !
이 변환 과정을 JIT(Just-In-Time) 컴파일이라고 부른다.
JVM은 자바 프로그램을 실행하는 데 중요한 역할을 하는 친구
1. 바이트코드 해석 및 실행
자바 바이트코드를 읽고 해석해서 실행한다.
2. 메모리 관리
프로그램 실행 중에 메모리를 관리함
ex ) 사용하지 않는 객체를 자동으로 메모리에서 제거하는
가비지 컬렉션(Garbage Collection)을 수행
3. 플랫폼 독립성
자바 바이트코드는 어떤 운영체제에서도 실행될 수 있다.
JVM만 있으면, 같은 바이트코드를 다양한 플랫폼에서 실행할 수 있음
자바 소스 코드를 작성하고 .java 파일로 저장 - >
javac 컴파일러가 소스 코드를 컴파일해서 .class 파일 생성함 - >
.class 파일은 자바 바이트코드가 들어있는 파일임 - >
JVM이 바이트코드를 읽으며 프로그램 실행
(이 과정에서 jvm이 os가 인식할 수 있도록
바이트코드 -> 기계어로 변환 ) !
좀 더 자세한 내용은 아래 참고하기