Java

자바 프로그램의 개발과 구동

donggi 2022. 1. 17. 22:31

자바 프로그램의 개발과 구동

스프링 입문을 위한 자바 객체 지향의 원리와 이해 책을 보고 작성하였습니다.

자바는 개발 도구인 JDK를 이용해 개발된 프로그램은 JRE에 의해 가상의 컴퓨터인 JVM 상에서 구동됩니다.

  • 가상의 컴퓨터 -> JVM
  • 가상 컴퓨터를 제어하는 운영체제 -> JRE
  • 가상 세계에서 사용한 개발 도구 -> JDK

기존 언어로 작성한 프로그램은 작성한 프로그램을 다른 운영체제에서는 실행이 안 되는 불편함이 있었습니다. 이를 해소하고자 JVM을 만들어 각 플랫폼에서 프로그램을 구동하는 데 아무 문제가 없게끔 만들어주었습니다.

스크린샷 2022-01-17 오후 8 06 21

  • 프로그램이 메모리를 사용하는 방식

IMG_1379

  • 객체 지향 프로그램의 메모리 사용 방식
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 영역에 가져다 놓습니다.
  • 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