• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

static 영역에는 static 변수들을 보관한다는 설명에 관해서

24.02.22 23:53 작성 조회수 116

0

제목에 언급한 대로 위 부분에 대해 질문이 있는데요.

 

자바 메모리 구조와 static 강의와 교안을 봐도 다음과 같이 static 영역에 대해 설명하고 있습니다.

  • static 영역: static 변수들을 보관한다.

하지만 코드를 설명할 때 이미지를 보면 static 영역에 static 변수들만 있는 게 아니라 클래스 정보까지 담겨있습니다.

 

static 영역에는 static 변수들과 클래스 정보 모두를 포함하고 있다고 수정해서 이해해야 할까요?

답변 1

답변을 작성해보세요.

2

안녕하세요. 김제하님

자바 메모리 구조에서 static 영역(또는 메소드 영역, Method Area라고도 함)은 static 변수뿐만 아니라 클래스 정보도 포함합니다. 이 영역은 JVM이 시작될 때 생성되며 모든 클래스와 인터페이스의 메타데이터를 저장합니다. 클래스 로더에 의해 클래스가 처음 메모리에 로드될 때, 이 클래스의 구조를 설명하는 메타데이터(예: 클래스의 이름, 부모 클래스, 메소드, 변수 등)가 메소드 영역에 저장됩니다.

static 영역에 저장되는 정보:

  • 클래스 정보: 이것은 클래스의 구조를 설명하는 메타데이터를 포함합니다. 예를 들면, 클래스의 이름, 부모 클래스의 정보, 클래스에서 구현한 인터페이스, 클래스의 메소드와 변수 등이 여기에 속합니다.

  • static 변수: 클래스 단위로 관리되는 변수로서, 클래스의 모든 인스턴스들이 공유하는 변수입니다. 이러한 변수들은 프로그램이 시작될 때 생성되어 프로그램이 종료될 때까지 유지됩니다.

감사합니다.