genius00hwan.log
로그인
genius00hwan.log
로그인
Java의 메모리 구조
김수환
·
2023년 7월 1일
팔로우
0
0
땅울림 서버 스터디 1 : 자바
목록 보기
1/3
자바의 프로그램 실행 구조
다른 프로그램
:
프로그램 - OS - 하드웨어
OS가 프로세스별로 메모리를 할당해주고, 프로세스를 실행 시킨다.
자바 프로그램
:
프로그램 - JVM - OS - 하드웨어
OS가 JVM에 메모리를 할당해준다. (Runtime Data Area)
JVM이 자바프로그램을 관리한다.
JVM은 OS의 도움 없이 멀티쓰레드를 지원한다.
어떤 OS에서도 동일한 결과를 갖는다.
Runtime Data Area
PC, Method Area , Heap, JVM Stack, Native Method Stack
PC register
현재 수행중인 JVM Instruction 주소
스레드가 생성되면서 할당
Method Area
바이트 코드, 필드 정보, 메소드 정보, Static 변수 (클래스 변수)가 저장
JVM이 실행되면서 생성되는 공간
저장된 정보들은 프로그램 실행 시 부터 종료 시 까지 저장되어 있다.
Heap
new 연산자로 동적으로 생성된 객체 및 배열이 저장되어 있다.
저장된 정보들은
Garbage Collector
가 처리하면 삭제된다.
객체, 배열, String 등 참조형 자료(Reference Type Data)들이 저장 되어 있다.
저장되어 있는 기간에 따라 Old, Young으로 나눠 저장되어 있다.
JVM Stack
메소드에서 사용하는 지역 변수가 저장되어 있다.
Stack 이라는 이름 답게 LIFO방식.
지역 변수인데 참조형 Data면 해당 주소를 Stack에 저장한다.
Native Method Stack
Java 이외의 C/C++등의 언어로 작성된 메소드들이 저장되어 있다.
김수환
hello human
팔로우
다음 포스트
메모리 관점에서 static이란?
0개의 댓글
댓글 작성