Java 메모리 영역

1954 단어 JavaJava

메모리 사용 영역

JVM은 OS에서 할당받은 메모리 영역을 메서드 영역, 스레드 영역, 힙 영역과 같이 세부 영역으로 구분해서 사용한다.

1. 메서드 영역 (Method Area)

메서드 영역에는 코드에서 사용되는 클래스 별로 런타임 상수 풀, 필드 / 메서드 데이터, 메서드 코드, 생성자 코드 등을 분류해서 저장한다
메서드 영역은 JVM이 시작될 때 모든 스레드가 공유하는 영역이다

2. 힙 영역 (Heap Area)

힙 영역은 객체와 배열이 생성되는 영역으로 JVM 스택 영역의 변수나 다른 객체의 필드를 참조한다

참조하는 변수나 필드가 없다면 쓰레기 값으로 취급하여 제거된다

3. 스택 영역 (Stack Area)

메서드 수행에 필요한 메모리가 제공되는 공간
메서드가 호출되면 호출 스택에 메모리를 할당하고, 종료되면 해제한다
스택 영역은 각 스레드마다 하나씩 존재하며 스레드가 시작될 때 할당된다

class Stack {
	public static void main(String[] args) {
		System.out.println("Hello");
	}
}
  1. 빈 스택 영역에 호출된 main 메서드가 올라간다
  2. main에서 호출한 println 메서드가 스택 영역에 올라가게 된다
  3. 올라간 println 메서드가 실행되고 종료된 후 해제된다
  4. 다시 main 메서드로 돌아오고 종료된 후 프로그램이 종료된다

좋은 웹페이지 즐겨찾기