본문 바로가기

JAVA

JAVA 메모리구조, 메소드 영역(클래스 영역)

 

 

JVM이 실행되면 운영체제에서 메모리를 할당해준다.

할당받은 메모리(Runtime Data Area)는 영역을 구분하여 사용한다.

크게 메소드 영역 , 힙 영역, 스택 영역 으로 나뉜다.

 

 

 

JAVA 실행 과정

 

 

 

 

메소드 영역이란 ?

JVM이 시작할때 생성된다.

상수풀,필드,데이터메소드,생성자 코드 등을 분류해서 저장한다.

모든 스레드가 공유가능한 영역이라 의미상 공유 메모리 영역이라고도 불린다.

 

 

 

 

클래스 로딩 처리구조

1.프로그램에서 메소드 호출

2.해당 메소드 클래스 바이트코드가 메소드영역에 로딩된 적이 있는지 확인

3.없다면 JRE라이브러리 폴더에서 클래스를 검색 (또는 환경변수 지정폴더) 

4.검색한 클래스 파일 바이트코드 검증

5.일치확인후 메소드 영역으로 로딩 

6.클래스 변수 명령어 존재시 메소드 영역에 변수 생성 

7.클래스 블록 실행 

8.JVM 종료까지 유지 

 

 

메소드 영역을 이용하여 클래스 재귀호출이 가능하다.