1. 자바 메모리 구조
- 메서드 영역, 스택 영역, 힙 영역 3가지로 구분
- 메서드 영역
- 클래스 정보를 보관
- 스택 영역
- 실제 프로그램이 실행되는 영역
- 메서드 실행마다 메서드가 스택 영역에 한 개씩 쌓임
- 힙 영역
- new 키워드로 생성한 객체(인스턴스)가 생성되는 영역 (배열 포함)
1-1. 메서드 영역 (Method Area)
- 프로그램 실행에 필요한 공통 데이터 관리
- 프로그램의 모든 영역에서 공유됨
- 클래스 정보 : 클래스의 실행 코드, 필드, 메서드, 생성자 코드 등 모든 실행 코드 존재
- static 영역 : static 변수 보관
- 런타임 상수 풀 (참고) : 공통 리터럴 묶어서 관리
1-2. 스택 영역 (Stack Area)
- 자바 실행 ⇒ 하나의 실행 스택 (스택 영역)생성됨
- 스택 영역 : 스택 프레임이 쌓임
- 스택 프레임 : 메서드 호출마다 하나의 스택 프레임이 쌓임 스택 프레임에는 지역 변수, 중간 연산 결과, 메서드 호출 정보 등이 포함됨 메서드 종료 시 스택 프레임 제거됨
1-3. 힙 영역 (Heap Area)
- 객체(인스턴스) , 배열이 생성되는 영역
- 가비지 컬렉션 (GC) 이 이루어지는 주요 영역
'Java' 카테고리의 다른 글
[Java] 자바 제네릭스 (Generics) (0) | 2024.07.28 |
---|---|
[Java] 입출력(I/O), 스트림, 버퍼 (0) | 2024.07.28 |
[Java] final (0) | 2024.07.09 |
[Java] static (0) | 2024.07.09 |
[Java] 객체 지향 프로그래밍 - 추상화 (Abstraction) (0) | 2024.07.09 |