1. JVM Architecture란?
JAVA가 돌아가는 구조
2. static 특징
1. 정적 (main이 실행되기 전에 '정적'으로 딱 한 번 뜬다.) 2. 가장 먼저 시작되어서 main이 끝날 때까지 살아있다. 자바에서 수명이 제일 길다. 그래서 메모리를 많이 잡아먹음.
2-1. 자바 실행 순서
1. 자바가 시작될때 가장 먼저 하는 일은 JVM이 .class (컴파일)을 들고 오는 것. 2. JVM이 코드를 분석하러 들어올 때, 제일 먼저 static을 찾는다. 3. 찾은 static을 메모리로 들고 온다.
JVM에선 공간을 class마다 구분해서 놓는다 (아래 그림과 같이)
<예시 class>
<JVM이 할당하는 메모리 영역>
가장 먼저 하는 일은 static을 메모리로 들고오는 것. age = 20와 main을 메모리로 들고 왔다. 공간을 class마다 구분해서 놓으니 메모리에 Person1이라는 클래스 공간, MemEx01이라는 클래스 공간 총 2개가 생성.
<main메소드에 static을 지워봤다.>
모든건 메모리에 떠야지 실행시킬 수 있다. static이 없으니까 메모리에 안뜸! > 오류
정적과 동적을 왜 나눴나? 메모리를 효과적으로 관리하기 위해서
Share article