인프런 커뮤니티 질문&답변

ghuhan18님의 프로필 이미지
ghuhan18

작성한 질문수

김영한의 실전 자바 - 기본편

스택 영역

스택 구조

작성

·

175

0

만약 method2() 가 method1() 내부에서가 아니라 제가 화살표 친 부분 즉, method1() 다음 줄에 emthod2(8) ;

이렇게 적혀 있으면 스택에는 아래서부터 main mehtod , method1, method2 순으로 쌓이는건가요?

근데 윗줄부터 실행하면 method1 이 method2 보다 우선적으로 실행하는거 아닌가요 ?

 

제가 아는 스택 구조라면 method2() , method1() , main method() 순으로 종료가 되어야 하는데, 제가 말한 식으로 있을때에는 성립하지 않는 것 같습니다.

답변 1

0

안녕하세요. ghuhan18님, 공식 서포터즈 y2gcoder입니다.

public static void main(String[] args) {
    //...
    method1(10);
    method2(20);
    //...
}

아마도 이런 구조를 말씀하시는 것 같습니다.

이럴 때 아마도

Stack(main())

Stack(main(), method1())

Stack(main()) // method1() 종료

Stack(main(), method2())

Stack(main()) // method2() 종료

Stack() //main() 종료

 

이런 식으로 method1() 이 종료되기 때문에 먼저 stack에서 꺼내집니다.

영한님의 그림 설명과 더불어서 보시면 좀 더 이해가 되실 것이라 생각합니다

감사합니다.

ghuhan18님의 프로필 이미지
ghuhan18

작성한 질문수

질문하기