
1. Method Area (메서드 영역)
- 역할
- 클래스 관련 정보 저장 (클래스 이름, 메서드, 필드, static 변수, 상수)
- 프로그램 시작 시 클래스 로더가 한 번 로드
- 모든 스레드가 공유
- 특징
- static, final 상수 저장
- 오래 살아남는 데이터
- 성능 영향
- static 남용 시 메모리 부족 발생 가능
2. Heap (힙 영역)
- 역할
- new로 생성된 객체 저장
- 모든 스레드가 공유
- 특징
- GC(Garbage Collector)가 관리
- Young / Old Generation으로 나뉘어 GC 효율화
- 성능 영향
- 객체 생성 많으면 GC 자주 발생 → 성능 저하
- 객체 재사용으로 성능 개선 가능
3. Stack (호출 스택, Call Stack)
- 역할
- 메서드 실행 시 스택 프레임 생성
- 지역 변수, 매개변수, 연산 임시값 저장
- 특징
- 스레드마다 독립적으로 존재
- LIFO 구조 (Last In First Out)
- 성능 영향
- 메서드 호출이 많거나 재귀 깊으면 StackOverflowError
'개발 공부 > Java-Spring' 카테고리의 다른 글
| interface vs abstract class (0) | 2025.09.26 |
|---|---|
| 정적팩토리 메서드 (0) | 2025.08.15 |
| 자바 용어 와 자바 실행 방법 (0) | 2025.07.28 |
| SOLID객체지향 5가지 원칙 (0) | 2025.06.27 |
| 객체끼리 비교할 때 무조건 equals메서드 사용할 것 (0) | 2025.06.12 |