Engineering Note

[Java] 메모리 사용 영역 본문

Programming Language/Java

[Java] 메모리 사용 영역

Software Engineer Kim 2025. 6. 18. 16:37

5.2 메모리 사용 영역

Java 명령어로 JVM이 구동되면 JVM은 운영체제에서 할당받은 메모리 영역을 다음과 같이 구분해서 사용한다.

 

 

메소드 영역

바이트코드 파일을 읽은 내용이 저장되는 영역으로 클래스별로 상수, 정적 필드, 메소드 코드, 생성자 코드 등이 저장된다. ⇒ 바이트 코드 파일의 내용이 저장되는 영역.

 

힙 영역

  • 객체가 생성되는 영역.
  • 객체의 번지는 메소드 영역과 스택 영역의 상수와 변수에서 참조할 수 있다.

스택 영역

  • 메소드를 호출할 때마다 생성되는 프레임이 저장되는 영역.
  • 메소드 호출이 끝나면 프레임은 자동제거 된다.
  • 프레임 내부에는 로컬 변수 스택이 있다.

Java의 문자열은 String 객체로 생성된다. String 변수 name과 hobby 변수에 “홍길동”, “여행” 문자열을 생성하여 저장하면 문자열 리터럴은 String 객체로 생성돼서 heap 영역에 저장되고 name 변수와, hobby 변수는 stack 영역에 생성된고 문자열 객체의 주소가 저장한다.

 

변수들은 모두 스택이라는 메모리 영역에 생성된다.

 

 

참조: 이것이 자바다(저자 신용권, 임경균)

Comments