• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

메모리 영역에 관해서 질문드릴게요

23.12.11 13:32 작성 23.12.11 14:01 수정 조회수 347

0

스크린샷 2023-12-11 130430.png이 코드에서요 메서드영역,스택영역,힙영역이 조금 헷갈려서요

public static void main(String[] args)

이 main메서드는 스택영역이고

public static int sum(int[] array){
        int sum = 0;
        for (int sum1: array) {
            sum += sum1;
        }
        return sum;
    }

이 sum 메서드는 메서드 영역,

int[] array 매개변수는 heap영역

sum메서드안에 있는 변수들은 stack영역 이렇게 이해하면될까요?

답변 1

답변을 작성해보세요.

0

y2gcoder님의 프로필

y2gcoder

2023.12.11

안녕하세요. 자바마스터하자님, 공식 서포터즈 y2gcoder입니다.

main 메서드와 sum 메서드 자체의 정의는 메서드 영역에 저장합니다!

main 메서드와 sum 메서드의 호출 시 각 메서드의 호출과 실행 정보는 각각 스택프레임으로 만들어 스택 영역에 저장합니다!
int[] array와 같은 배열 객체는 힙 영역에 저장되고 배열에 대한 참조 변수, 로컬 변수 등은 스택 영역 내의 해당 메서드의 호출과 실행정보를 담고 있는 스택 프레임에 저장합니다 :)

감사합니다.