자바 프로그램의 개발과 구동
스프링 입문을 위한 자바 객체 지향의 원리와 이해 책을 보고 작성하였습니다.
자바는 개발 도구인 JDK를 이용해 개발된 프로그램은 JRE에 의해 가상의 컴퓨터인 JVM 상에서 구동됩니다.
- 가상의 컴퓨터 -> JVM
- 가상 컴퓨터를 제어하는 운영체제 -> JRE
- 가상 세계에서 사용한 개발 도구 -> JDK
기존 언어로 작성한 프로그램은 작성한 프로그램을 다른 운영체제에서는 실행이 안 되는 불편함이 있었습니다. 이를 해소하고자 JVM을 만들어 각 플랫폼에서 프로그램을 구동하는 데 아무 문제가 없게끔 만들어주었습니다.
- 프로그램이 메모리를 사용하는 방식
- 객체 지향 프로그램의 메모리 사용 방식
public class Start {
public static void main(String[] args) {
System.out.println("Hello OOP!");
}
}
main() 메서드가 실행될 때
- JRE가 main() 메서드가 있는지 확인합니다.
- main() 메서드가 확인되면 JRE가 JVM을 부팅합니다.
- JVM이 목적파일을 받아 실행합니다.
- JVM이 java.lang 패키지를
static
영역에 가져다 놓습니다. (java.lang 패키지가 있기에 System.out.println() 같은 메서드 사용이 가능합니다) - JVM은 작성된 모든
클래스
와임포트 패키지
를static
영역에 가져다 놓습니다.
- JVM이 java.lang 패키지를
- main() 메서드의 중괄호가 열리면서
stack
영역에 할당됩니다. - 메서드의 인자 args를 저장할 변수공간을 스택 프레임 맨 밑에 확보합니다.
- main() 메서드 안의 첫 명령문인
Hello OOP!
가 출력됩니다.
main() 메서드 실행이 종료되면
- main() 메서드 실행이 끝나게 되면
- JRE는 JVM을 종료합니다.
- JRE 자신도 운영체제 상의 메모리에서 사라집니다.
'Java' 카테고리의 다른 글
5주차 클래스 (0) | 2022.08.18 |
---|---|
제어문 (0) | 2022.08.12 |
연산자 (0) | 2022.08.10 |
자바 데이터 타입, 변수 그리고 배열 (5) | 2022.07.28 |
JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가 (9) | 2022.07.24 |