Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

JVM(Java Virtual Machine) 스택 영역

<시간/>

다음은 JVM 스택 영역을 이해하기 위한 몇 가지 핵심 사항입니다. -

  • 스레드를 생성하는 동안 JVM(Java Virtual Machine)은 별도의 스택을 생성합니다.

  • JVM은 이 스택에 대해 두 가지 작업만 수행합니다. 작업은 푸시(삽입) 및 팝(삭제)입니다.

  • 스레드가 현재 실행 중일 때 연결된 스택을 런타임 스택이라고 합니다.

  • 스레드가 수행하는 모든 메서드 호출, 중간 계산, 지역 변수 할당, 매개변수 호출 등은 런타임 스택에 작업으로 저장됩니다.

  • 스레드가 실행을 중지하거나 완료하면 스택에서 해당 부분이 삭제됩니다.

  • 스레드에 의한 모든 호출이 완료되면 스택이 비게 되고 삭제됩니다.

  • 스레드를 종료하기 직전에 JVM은 해당 스레드와 관련된 스택을 파괴합니다.

  • 스레드와 관련된 데이터를 저장하는 스택은 해당 특정 스레드에서만 독점적으로 사용할 수 있으며 다른 스레드에서는 액세스할 수 없습니다.

  • 이는 스택의 데이터가 스레드로부터 안전함을 나타냅니다.

  • 스레드와 관련된 스택의 모든 데이터는 활성화 레코드 또는 스택 프레임으로 알려져 있습니다.

참고 − JVM 스택에 연속적인 메모리 위치가 있어야 하는 것은 아닙니다.

활성화 레코드/스택 프레임의 구조

세 가지 구성 요소로 구성됩니다 -

  • 지역 변수 배열,

  • 피연산자 스택 및

  • 프레임 데이터

  • JVM은 클래스 데이터를 조사하여 필요한 크기의 스택 프레임을 생성합니다.

  • 피연산자 스택은 JVM에 대한 작업 공간과 같은 기능을 하며 중간 계산 결과를 저장하는 데 사용됩니다. 로컬에서 변수 배열처럼 구성되지만 스택에서 푸시 및 팝 작업을 수행하여 액세스할 수 있습니다.

  • 프레임 데이터 - 상수 데이터 값과 메서드 반환 데이터를 포함합니다. 이 외에도 예외를 잡아야 하고 관련 메시지가 콘솔에 표시되어야 할 때 catch 블록에 대한 모든 정보가 있는 Exception 테이블에 대한 참조가 포함되어 있습니다.