issues
search
bumdream
/
morning_study
1
stars
0
forks
source link
JVM 메모리구조에서 stack
#10
Open
bumdream
opened
6 years ago
bumdream
commented
6 years ago
자바프로그램 실행과정과 JVM 메모리 구조
JAVA source : 사용자가 작성한 JAVA 코드
JAVA 컴파일러 : java 코드를 Byte코드로 변환시켜주는 기능
Class loader : class 파일을 메모리(Runtime Data Area) 에 적재하는 기능
Execution Engine : Byte Code 를 실행 가능하게 해석해주는 기능
Runtime Data Area : 프로그램을 수행하기 위해 OS 에서 할당 받은 메모리 공간.
Stack Area
Last In First Out (LIFO)
메소드 호출 -> 스택에 호출된 메소드를 위한 메모리할당(스택프레임 생성) -> 메소드 끝나면 메모리 공간 반환
Stack Frame
JVM 스택은 각 스레드마다 하나씩 존재하며 스레드가 시작될 때 생성.
JVM 스택은 스택프레임이라는 구조체를 저장하는 스택
Local Variable Array : 지역변수 배열
0 은 this, 1부터는 매개변수,지역변수들이 저장
Operand Stack : 피연산자 스택
메서드의 실제 작업 공간.
컴파일시에 결정된다.
현재 실행중인 메서드가 속한 클래스의 런타임 상수풀에 대한 레퍼런스.
참고 :
http://odol87.tistory.com/5
자바프로그램 실행과정과 JVM 메모리 구조
Stack Area
Stack Frame
참고 : http://odol87.tistory.com/5