24.02.27 06:17 작성
·
170
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에서 꺼내집니다.
영한님의 그림 설명과 더불어서 보시면 좀 더 이해가 되실 것이라 생각합니다
감사합니다.