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