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

자바마스터하자님의 프로필 이미지

작성한 질문수

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

문제와 풀이

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

작성

·

481

·

수정됨

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입니다.

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

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

감사합니다.