[JAVA] 메모리 사용 영역(Runtime Data Area)

2020. 7. 2. 23:56·Computer Science/Programming Language

메모리 영역(Runtime Data Area)

1. 메소드(Method) 영역

- 코드에서 사용되는 클래스(~.class)들을 클래스 로더로 읽어 클래스별로 런타임 상수풀(runtime constant pool), 필드(field) 데이터, 메소드(method)데이터, 메소드 코드, 생성자(constructor)코드 등을 분류해서 저장

- JVM이 시작할 때 생성되고 모든 스레드가 공유하는 영역

 

2. 힙(Heap) 영역

- 객체와 배열이 생성되는 영역

 (객체 & 배열 : JVM 스택 영역의 변수나 다른 객체의 필드에서 참조)

- JVM은 Garbage Collector를 실행시켜 (참조하는 변수나 필드가 없는 의미 없는 객체를 쓰레기로 취급함)쓰레기 객체를 힙 영역에서 자동으로 제거

 

3. JVM 스택(Stack) 영역

- 각 스레드마다 하나씩 존재하며 스레드가 시작될 때 할당됨

- 메소드가 호출할 때마다 프레임(Frame)을 추가(push)하고 메소드가 종료되면 해당 프레임을 제거(pop)함

- 프레임 내부에는 로컬 변수 스택이 있는데, 기본타입변수나 참조 타입 변수가 push/pop됨

 

저작자표시 비영리 변경금지 (새창열림)

'Computer Science > Programming Language' 카테고리의 다른 글

[JAVA] 어떤 숫자를 자릿수별로 배열에 저장하는 방법  (0) 2020.08.07
[JAVA] Airline Booking Engine  (0) 2020.07.12
[C++] 접근자와 설정자  (0) 2020.06.14
[C++] 객체의 동적 생성  (0) 2020.06.14
[C++] 함수 호출 시 인수 전달 방식  (0) 2020.06.13
'Computer Science/Programming Language' 카테고리의 다른 글
  • [JAVA] 어떤 숫자를 자릿수별로 배열에 저장하는 방법
  • [JAVA] Airline Booking Engine
  • [C++] 접근자와 설정자
  • [C++] 객체의 동적 생성
BS Kwak
BS Kwak
  • BS Kwak
    Slow but steady wins the race
    BS Kwak
  • 전체
    오늘
    어제
    • 카테고리 (161)
      • Project (2)
      • Next.js (3)
      • HTML+CSS+JS (17)
      • Computer Science (139)
        • Programming Language (52)
        • 자료구조와 알고리즘 (75)
        • Digital circuit (3)
        • 기타 error (9)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    해시
    cmd error
    티스토리챌린지
    leetcode
    mysql error
    런타임 에러
    오블완
    c++error
    LNK2001
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
BS Kwak
[JAVA] 메모리 사용 영역(Runtime Data Area)
상단으로

티스토리툴바