inblog logo
|
codingb
    Java

    JVM Architecture (static)

    Jan 28, 2024
    JVM Architecture (static)

    1. JVM Architecture란?

    JAVA가 돌아가는 구조
     

    2. static 특징

    1. 정적 (main이 실행되기 전에 '정적'으로 딱 한 번 뜬다.) 2. 가장 먼저 시작되어서 main이 끝날 때까지 살아있다. 자바에서 수명이 제일 길다. 그래서 메모리를 많이 잡아먹음.
     

    2-1. 자바 실행 순서

    1. 자바가 시작될때 가장 먼저 하는 일은 JVM이 .class (컴파일)을 들고 오는 것. 2. JVM이 코드를 분석하러 들어올 때, 제일 먼저 static을 찾는다. 3. 찾은 static을 메모리로 들고 온다.
    💡
    JVM에선 공간을 class마다 구분해서 놓는다 (아래 그림과 같이)
     

    <예시 class>

    notion image
     

    <JVM이 할당하는 메모리 영역>

    notion image
    가장 먼저 하는 일은 static을 메모리로 들고오는 것. age = 20와 main을 메모리로 들고 왔다. 공간을 class마다 구분해서 놓으니 메모리에 Person1이라는 클래스 공간, MemEx01이라는 클래스 공간 총 2개가 생성.
     

    <main메소드에 static을 지워봤다.>

    notion image
    notion image
    모든건 메모리에 떠야지 실행시킬 수 있다. static이 없으니까 메모리에 안뜸! > 오류
    💡
    정적과 동적을 왜 나눴나? 메모리를 효과적으로 관리하기 위해서
     

     
    Share article

    codingb

    RSS·Powered by Inblog