Stack 에는 힙 영역에 객체 타입의 데이터들에 대한 참조를 위한 값들이 할당된다.
또한 primitive 타입의 데이터들도 할당된다.
이 primitive 타입 데이터들에는 참조값이 아닌 실제 값을 저장한다.
Stack 메모리는 스레드 하나당 하나씩 할당이 되고
다른 스레드에선 접근할 수 없다.
이 Stack 이 어떻게 활용되는지 봐보자
argument 변수가 있다

argument 에 새로운 메소드를 호출해서
값을 return 받는다 생각해보자

함수 내부에서 param 변수에 argument 를 저장하고
이 변수에 4를 곱한 변수를 tmp에 저장한다.
그 후 2를 나눈 값을 return 하면
저렇게 메소드에서 발생하는 부분이 새로 프레임으로 생성이되고
저 부분에서 이전 메소드의 매개변수은 argument 를 사용할수없다.
최종적으로 해당 메소드 프레임이 pop 되기 전에
argument 에 return 값을 할당하고
메소드가 종료되면서 모든 데이터들은 pop 되버린다.
'Java > JVM' 카테고리의 다른 글
Garbage Collection (0) | 2021.02.04 |
---|---|
JVM 과 JIT 컴파일러 (0) | 2021.02.04 |
컴파일러 (0) | 2021.02.04 |
JVM 이란? (0) | 2019.11.11 |