본문으로 바로가기

Java의 메모리 구조

category CS 공부/Java, Spring (재정리) 2021. 4. 11. 20:31

JAVA - 전역, 지역, 클래스 변수를 자바의 메모리 구조와 관련해서 생각해보기

  1. 메소드 영역
  • 클래스에 대한 정보와 함께 클래스 변수(static variable)가 저장되는 영역.
  • JVM은 자바 프로그램에서 특정 클래스가 사용되면 해당 클래스의 클래스 파일(*.class)을 읽어들여, 클래스에 대한 정보를 메소드 영역에 저장한다.
  1. 힙 영역
  • 모든 인스턴스 변수(멤버 변수)가 저장되는 영역.
  • new 키워드를 사용해 인스턴스가 생성되면, 해당 인스턴스의 정보를 힙 영역에 저장한다.
  • 힙 영역은 메모리의 낮은 주소 -> 높은 주소의 방향으로 할당된다.
  1. 스택 영역
  • 메소드가 호출될 때, 메소드의 스택 프레임이 저장되는 영역.
  • 메소드 호출 시, 메소드 호출과 관계되는 매개변수와 지역 변수를 스택 영역에 저장한다.
  • 스택 영역은 메소드의 호출과 함께 할당되며, 메소드의 호출이 완료되면 소멸한다.
  • 스택 영역에 저장되는 메소드의 호출 정보를 스택 프레임이라고 부른다.
  • 후입 선출의 구조를 갖고 있으며, 메모리의 높은 주소에서 낮은 주소의 방향으로 할당된다.

'CS 공부 > Java, Spring (재정리)' 카테고리의 다른 글

OOP, 객체지향 프로그래밍  (0) 2021.04.11
String, StringBuffer, StringBuilder  (0) 2021.04.11
final, static 키워드  (0) 2021.04.11
자바 프로그램의 실행, 컴파일 과정  (0) 2021.04.11
Spring - AOP  (0) 2021.04.08