JAVA 개념 2-4 - 자바 메모리 관리

2022. 11. 14. 16:56· JAVA/JAVA 개념
목차
  1. 자바 메모리 관리
  2. 메서드 영역
  3. 힙 영역(heap area)
  4. 호출 스택(call stack or execution stack)

자바 메모리 관리

 

 JVM은 시스템(운영체제)으로부터 프로그램을 실행하는데 필요한 메모리를 할당받고 JVM은 할당받은 메모리를 용도에 따라 세 영역으로 나누어 관리합니다.

자바는 C언와 같이 직접적인 메모리 주소에 접근할 수 없으며 개발자가 메모리를 할당받거나 반환하지 않아도 되는 구조이기 때문에 일반적인 응용 프로그래머의 경우 구체적인 메모리 관리에 대해서는 자세히 알 필요는 없습니다.

 

 

메서드 영역

 프로그램 실행 중 특정 클래스가 사용되면, JVM은 해당 클래스의 클래스 파일(*. class)을 읽어서 분석한 다음 클래스에 대한 정보를 이곳에 저장하게 됩니다. 이때 클래스변수나 메서드(static)도 이 영역에 함께 생성됩니다.

main()에서 클래스에 선언된 변수에 접근할 수 없는 것도 이러한 이유로 main()은 static 으로 선언되어 있기 때문에 클래스에 선언된 멤버 변수(인스턴스 변수)를 사용할 수 없으며 인스턴스의 변수들은 힙 영역에 생성되기 때문에 인스턴스를 통해서만 접근이 가능한 것입니다.

 

 

힙 영역(heap area)

 프로그램 실행 중 생성되는 인스턴스는 모두 이곳에 생성됩니다. 즉, 인스턴스 변수들이 생성되는 공간으로 대부분의 메모리 공간은 힙 영역이 됩니다.

서버 시스템이나 메모리 사용이 많은 프로그램을 개발하거나 실행할 때 힙 메모리 부족으로 문제가 발생할 수 있으며 이 경우 JVM 메모리 옵션을 조정해 주어야 합니다.

 

 

호출 스택(call stack or execution stack)

 호출 스택은메서드 실행에 필요한 메모리 공간을 말합니다. 메서드가 호출될 때 호출 스택에는 호출된 메서드를 위한 메모리가 할당되며 이 메모리는 메서드가 작업을 수행하는 동안 지역변수 및 매개변수들의 연산 중간결과 등을 저장하는 데 사용됩니다. 메서드가 작업을 마치면 할당되었던 메모리 공간은 반환되어 정리(비워짐)됩니다.

지역변수들의 경우 멤버 변수나 다른 함수에서 사용된 변수들과 이름이 같아도 문제가 없는 이유입니다.

 

 

'JAVA > JAVA 개념' 카테고리의 다른 글

JAVA 개념 3-2 - 반복문  (0) 2022.11.24
JAVA 개념 3-1 - 조건문  (0) 2022.11.23
JAVA 개념 2-3 - 연산자  (2) 2022.11.14
JAVA 개념 2-2 - 변수와 메서드  (0) 2022.09.28
JAVA 개념 2-1 - 자바 기본 문법  (0) 2022.09.20
  1. 자바 메모리 관리
  2. 메서드 영역
  3. 힙 영역(heap area)
  4. 호출 스택(call stack or execution stack)
'JAVA/JAVA 개념' 카테고리의 다른 글
  • JAVA 개념 3-2 - 반복문
  • JAVA 개념 3-1 - 조건문
  • JAVA 개념 2-3 - 연산자
  • JAVA 개념 2-2 - 변수와 메서드
kms152000
kms152000
kms152000
백엔드 공부
kms152000
전체
오늘
어제
  • 분류 전체보기 (208)
    • JAVA (32)
      • JAVA 개념 (13)
      • 생활코딩 JAVA 입문 수업 (19)
    • Frontend (0)
      • HTML (0)
      • CSS (0)
      • JS (0)
    • Backend (2)
      • Spring 인강 (2)
    • 코딩 테스트 (154)
      • JAVA - 백준 단계별로 풀어보기 (110)
      • Python - 백준 단계별로 풀어보기 (44)
    • 자격증 (12)
      • 정보처리기사 인강 - 필기 (5)
      • 정보처리기사 인강 - 실기 (7)
    • Database (0)
      • MySQL (0)
      • Oracle (0)
    • 개발 환경 (5)
      • JAVA (1)
      • Eclipse (1)
      • Eclipse 오류 해결 (1)
      • Apache Tomcat (1)
      • IntelliJ (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • hELLO 티스토리 스킨

인기 글

태그

  • 백준 10998번 자바
  • 자바 개념
  • Java
  • 키보드 입력과 로깅
  • Eclipse 한글
  • Eclipse 환경 설정
  • JAVA 변수
  • 백준 자바 10869번
  • 로깅 프레임워크
  • 백준 1000번 자바
  • 자바
  • 백준
  • 비트 연산자
  • 논리연산자
  • 대입 연산
  • 이클립스 환경 설정
  • 3항 연산
  • 제어자
  • 다차원 배열
  • 생활코딩
  • java 메서드
  • 백준 자바 1001번
  • 자바 기본 문법
  • Eclipse console 한글 오류
  • 자바 컴파일 순서
  • 사칙 연산
  • 관계연산자
  • copyOf
  • 백준 자바 1008번
  • asList

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
kms152000
JAVA 개념 2-4 - 자바 메모리 관리
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.