Java JVM Memory
포스트
취소

Java JVM Memory

개요

Java의 엔진인 JVM의 메모리 영역에 대해 한번 간단하게 알아보자.

JVM

간단히 설명하자면 Java 바이트 코드를 기계어로 번역해서 어느 시스템에서나 동작할 수 있도록 하는 엔진. 쉽게 말하면 번역기.

JVM 작업 유형

  1. 코드 로드
  2. 코드 확인
  3. 코드 실행
  4. 사용자에게 런타임 환경을 제공

ClassLoader

클래스 파일을 로드하는데 사용되는 JVM의 하위 시스템입니다. 주로 세가지 작업을 담당

  • 로딩(loading)
  • 연결(linking)
  • 초기화(initialization)

메모리 영역 유형

Memory Area

  • 출처 : https://www.geeksforgeeks.org/how-many-types-of-memory-areas-are-allocated-by-jvm/

1. Class(Method) Area

클래스 코드, 변수 코드, 메소드 코드, 생성자를 저장하는 메모리 영역. 런타임 상수 Pool, 필드 및 메서드 데이터, 메서드 코드와 같은 모든 클래스의 클래스 level 데이터를 저장

2. Heap

객체 생성 및 저장 메모리 영역. 클래스 인터페이스와 배열에 메모리를 할당. 객체에 메모리 할당.

3. Stack

스레드에 각각 Stack이 있습니다. 메소드에 대한 값을 반환, 동적 링크를 수행하는 동안 필요한 데이터 및 부분 결과를 저장. 프레임을 저장하고 메서드를 호출할 때마다 새 프레임이 생성. 메서드 호출이 완료되면 프레임이 소멸.

4. Program Counter Register

non-native 메소드는 사용 가능한 JVM 명령어의 주소를 저장하는 PC를 가지고 있는 반면, native 메소드에서는 프로그램 카운터의 값이 정의되지 않습니다. PC 레지스터는 특정 플랫폼에 반환 주소 또는 기본 포인터를 저장할 수 있습니다.

5. Native Method Stack

C 스택이라고도 함. Java 언어로 작성되지 않습니다. 스레드가 생성될 때 각 스레드에 할당되며 고정되거나 동적일 수 있습니다.

마무리

www.geeksforgeeks.org 여기서 잘 보고 가져왔습니다. 고맙습니다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.

Java Primitive Type, Reference Type

Java HashMap