• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

JavaMemoryMain1

24.04.01 19:17 작성 조회수 105

0

 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
스택구조에 관하여 질문드립니다. m2사라지고 method2(cal)로 와서 저기 사라지고 다시 System.out.println("method1 start"); int cal = m1 * 2; 이 순서로 사라지는거 아닌가요 그러고 나서 메인에 있는 method1 로 가게 된다고 이해를 했는데 그렇다면 m1보다 메인함수가 먼저 사라지고 나머지 m1에 있는 System.out.println("method1 end");이게 마지막으로 사라지는거 아닌가요?

답변 1

답변을 작성해보세요.

2

김정영님의 프로필

김정영

2024.04.01

안녕하세요 같은 강의를 듣고 있는 사람입니다.

제가 감히 말씀 드려보자면

함수를 호출했을 때 그 함수에 또 다른 함수가 존재한다면, 기존에 먼저 실행하려고 했던 method1이 (12~15라인) 다른 함수 method2 (14라인)에서 멈추고 그 함수를 실행하게 됩니다.

이렇게 되면 method2가 실행되고 종료 되었을 때, 실행하다가 중간에 14번까지 하다가 끊긴 method1의 15라인이 실행되서 System.out.println("method1 end")가 먼저 사라지는게 아닐까 싶습니다.

그러면 method1은 method2가 종료된 뒤에 바로 종료 되고, 메인함수가 제일 마지막으로 (중간에 7번 라인에서 끊겼으니) 8번라인이 실행되면서 종료된다고 생각합니다.

 

혹시 다르게 생각하고 계시다면 저도 다시 생각 해보겠습니다.

채널톡 아이콘