inblog logo
|
muaga's Hub
    Java

    JVM(자바 가상 머신)의 내부 동작 원리

    JVM(자바 가상 머신)의 내부 동작 원리
    muaga's avatar
    muaga
    Apr 30, 2024
    JVM(자바 가상 머신)의 내부 동작 원리
    Contents
    JVM1. JVM(Java Virtual Machine)2. 내부 동작 원리3. JVM Start❔

    JVM


    1. JVM(Java Virtual Machine)

    자바 가상 머신으로, 컴퓨터가 자바 프로그램을 실행할 수 있도록 도와주는 S/W이다. 바이트 코드로 변환된 Java 파일을 한 줄씩 읽어 해석한 후 실행한다. 이로 인해 자바로 개발된 프로그램은 CPU나 운영체제의 종류와 관계없이 자바 가상 머신을 설치할 수 있는 시스템에서는 어디서나 실행할 수 있다.
     

    2. 내부 동작 원리

    💡
    Java 파일 -javac(컴파일러) ➡️ .class ➡️ java 실행 ➡️ JVM start
     
    notion image
     
    • javac : 바이트 코드
    • JDK
      • 자바 프로그램을 개발하는데 필요한 모든 도구와 라이브러리의 집합
      • 컴파일 실행파일 / 실행 가능한 바이트 코드로 변환
      • 컴파일러, 디버거, JRE
    • JRE
      • 자바 프로그램을 실행하는데 필요한 환경을 제공
      • 바이트 코드를 해석, 실행
      • JVM, 라이브러리들
      •  

    3. JVM Start

    3.1. 클래스 로드(.class 파일 - RAM)

    JVM이 실행 시점에서 필요한 클래스를 찾아서 메모리로 로드하는 과정이다. 👉 JVM이 관리하는 영역
     

    2.2. static 로드(정적 변수)

    static이 적힌 코드를 메모리에 저장하는 것이다. static은 실행의 처음부터 끝까지 존재하므로, 어떤 것을 static으로 존재시킬 지 생각해봐야 한다.
    • 'main' 이전에 이미 셋팅이 되어 있어야 한다.
     

    3.3. 'main'을 찾는다(static 로드가 된 공간에서)

    static - main은 1set이다. main은 실행되지 않은 상태(모든 코드 비 실행 상태)이며, 메모리에 뜨지 않는다.
     

    3.4. main의 body 실행

    main의 body를 찾아 코드를 실행한다.
     

    3.5. JVM 종료

    main 메소드가 종료되면 JVM의 실행도 종료되며, 모든 메모리 리소스가 해제되므로 static도 소멸된다.
    • main 메소드가 종료되어도 다른 스레드가 실행중이라 JVM이 종료되지 않는다면, static는 계속 유지된다.
     

    ❔


    데몬 프로세스 : 실행이 된 후 스스로 종료되지 않는 프로세스 예) TV, 웹사이트(내가 x를 눌리기 전까지는 스스로 종료되지 않는다)
    Share article
    Contents
    JVM1. JVM(Java Virtual Machine)2. 내부 동작 원리3. JVM Start❔

    muaga's Hub

    RSS·Powered by Inblog