1. JVM 자바가상머신
- JVM의 동작 RAM에 JVM 사용공간 할당 사용공간은 4개로 나눠져 있다. static, heap, stack, queue

- JVM 이해용 코드
public class JvmTest {
int num1 = 1;
static int num2 = 2;
void method1(int num3) { //method1의 stack에 매개변수 저장
System.out.println("num3 : " + num3);
int num4 = 4;
System.out.println("num4 :" + num4);
}
public static void main(String[] arg) {
System.out.println("JVM START");
System.out.println("num2 : "+JvmTest.num2);
//num2는 JvmTest 실행하자마자 정의되어있어서 사용가능
JvmTest jt = new JvmTest(); //heap 공간 생성 / stack 생성
// num1 = 1, method1()
System.out.println("num1 : "+jt.num1);
jt.method1(3);
}
}
클래스가 시작 될 때 (Class 로드)
num2 와 main 이 떠있는 상태다. (STATIC 찾기)
main 실행 (main queue 생성)
main queue에 14,15,16,17,18 들어감
14번부터 pop (queue에서 나감)
차례대로 하다가 16번 JvmTest jt = new JvmTest(); 에서 jt의 heap 과 stack 생성
jt heap에는 num1 = 1 과 method1 이 있다.
17번 System.out.println("num1 : "+jt.num1); 에서 jt.num1 이 나오고
jt라는 참조변수를 통해 num1을 찾아서 화면에 결과를 나타낸다.
18번 jt.method1(3); 에서 jt라는 참조변수를 통해 method1을 찾아내고
메서드를 실행한다. method1 메서드가 실행될 때 (method1의 stack과 queue가 생성됨)
method1 stack에 num3(매개변수)= 3 , num4 = 4 가 들어가있다.
method1 queue에 7,8,9 가 순서대로 들어감
7번 pop > 8번 pop > 9번 pop 이후 메서드 기능 종료
method1의 stack 과 queue 사라짐
>> jt.method1(3) 종료
main 기능 종료 > stack , queue, jt.heap, jt.stack 사라짐
정리
class가 실행 될 때 static을 찾아서 메모리에 띄워놓는다.
main 메서드가 실행되면서 main stack, heap, queue가 생성된다.
main queue에 main메서드 속 코드가 순서대로 들어간다.(push)
들어간 순서대로 queue에서 배출된다. (선입선출 / pop)
main queue 이해도 (선입선출 / push → pop)

stack 이해도 (선입후출 / push → pop)

** queue는 선입선출 / stack은 선입후출
heap은 클래스 참조값이 저장된다
EX)
JvmTest jt = new JvmTest();
코드가 실행되면서 main stack 공간에 jt = *5000 이 들어가게 되고,
jt heap 공간에 num1 = 1 , method1 이 들어가게 된다.
이후
System.
out
.println("num1 : "+jt.num1);
jt.method1(3);
두 개의 코드가 진행되면서
jt.num1
은 main stack에 있는 jt = *5000를 참조하여
jt heap 공간에 있는 num1 = 1 을 찾아서 나타낸다.
jt.method1(3);
는 jt = *5000를 참조하여 jt heap 공간에 있는 method1을 찾아낸다.
method1 메서드가 실행되면 method1 stack 공간과 queue가 생긴다.
method1 queue에 method 코드가 들어가고 진행된다.
전부 실행되고 나면 jt heap 과 stack 공간은 사라진다.
main의 코드진행이 끝났으니 main의 저장공간 또한 사라지고
클래스의 작업 또한 끝났으니 static 저장공간의 정보들도 사라진다.
Share article