Java 코드연습

[뉴렉처] 코드 실행과 함수 호출 스택

양상추상츄 2021. 10. 19. 23:17

코드가 실행되는 과정을 아주 자세하게 설명해주셨다.

https://www.youtube.com/watch?v=dBRU_-eLvpU&list=PLq8wAnVUcTFWQ4TpRPZRa5nj1VwfyO7st&index=15

동영상

 

 

*과정

함수가 실행되기전 안쪽의 변수의 공간 먼저 생성되는데 이 공간이 Stack이다

더이상 입력이 안되게 잠긴다

1

2

new가 살행되면서 Heap에 공간이 Exam()으로 인해 생성이되고 = 연산을 통해 exam에 참조된다.

 

3

input이 실행되면서 input 함수의 공간도 생성되고 매개변수 exam은 input(exam, 7)에 있는 exam을 참조한다.

(input 함수의 지역변수는 생략)

 

4

void input(Exam exam, int test)가 끝나면 다시 main함수의 input 쪽으로 돌아오게 되고

Stack에 쌓였던 메모리가 삭제된다.

 

5

main함수도 끝나면 Stack에 있는 main함수관련된 메모리도 삭제된다.

Heap은 남아있는데 계속 남아있으면 자바가 남아있는 메모리는 나중에 삭제함