자바의 메모리 영역
1. 메서드 영역(Method Area)
: 클래스 파일에 대한 정보가 저장되는 공간입니다. 클래스 이름, 부모 클래스, 변수, 상수 풀 등 클래스 정보와 메서드가 저장됩니다. 프로그램 종료 시까지 유지됩니다.
2. 힙 영역(Heap Area)
: 객체가 생성될 때 사용되는 메모리 공간입니다. New 키워드를 사용해 객체를 생성하면, 해당 객체가 Heap 영역에 할당됩니다. Heap 영역은 크기가 동적으로 변합니다. 가비지 컬렉션(Garbage Collection)의 관리 대상입니다.
3. 스택 영역(Stack Area)
: 메서드 호출 시 사용되는 메모리 공간입니다. 지역 변수, 파라미터, 리턴 값 등이 저장됩니다. 각각의 스레드마다 별도로 생성되며, 스레드가 종료되면 스택 영역도 함께 사라집니다.
4. PC(Program Counter) Register 영역
: 현재 실행 중인 스레드가 다음에 실행할 명령어의 주소를 저장하는 메모리 공간입니다. 즉, 다음에 실행할 명령어의 위치를 가리키는 포인터 역할을 합니다. 스레드마다 별도로 생성됩니다.
5. 네이티브 영역
: 자바 외부에서 작성된 C나 C++과 같은 네이티브 코드를 위한 메모리 영역입니다.
'java(자바)' 카테고리의 다른 글
[java(자바)] 클래스, 객체, 인스턴스란? _디버깅의 눈물 (0) | 2023.03.19 |
---|---|
[java(자바)] 객체 지향의 주요 특징-캡슐화, 상속, 다형성, 추상화 _디버깅의 눈물 (0) | 2023.03.18 |
[java(자바)] 자바의 컴파일 과정 _디버깅의 눈물 (0) | 2023.03.17 |
[java(자바)] 가비지 컬렉션(Garbage Collection)이란? _디버깅의 눈물 (0) | 2023.03.17 |
[java(자바)] JDK, JRE, JVM의 차이점은? _디버깅의 눈물 (0) | 2023.03.16 |