티스토리 뷰
Development/Technical Interview
[면접 준비 - Java]Stack Memory vs. Heap Memory
Vagabund.Gni 2023. 4. 9. 21:48728x90
반응형
대략 네 달쯤 전에, JVM의 기본 구조에 대해 다루면서 스택과 힙에 대해 다루기는 했다.
2022.12.11 - [Development/Technical Interview] - [면접 준비 - Java]JVM 구조(2), Runtime Data Area
하지만 특히나 스택과 힙은 직접 개발하며 마주칠 일이 많은데다
따로 떼어서라도 조금 더 자세히 알고 있는 게 좋을 것 같아서
둘을 비교하는 글을 올려두기로 했다.
Stack Memory vs. Heap Memory
들어가기 전에 둘의 공통점을 짚자면, 너무나 명백하게도 둘 다 프로그램에서 할당하는 메모리 영역이다.
하지만 그 목적과 기능 및 할당되는 방식까지 아주 다르기 때문에, 둘을 비교하는 것도 어찌 보면 이상한 일일지도.
그래도 하나씩 정리해 보자.
Stack Memory | Heap Memory | |
구조 | 스택(후입선출) | GC에 의해 세대별 관리 |
주소 | 상위→하위 주소로 할당 | 하위→상위 주소로 할당 |
할당 방식 | 스레드마다 독립적으로 자동 할당 | 스레드간 공유되며 수동(동적) 할당 |
다중 스레드 | Thread Safe | synchronized와 같은 추가 처리 필요 |
속도 | 스레드 내부 할당이라 상대적으로 빠름 | 공유 메모리이기 때문에 상대적으로 느림 |
할당 시점 | 메서드 호출시 | 객체 생성시 |
저장 대상 | 메서드의 지역변수 및 매개변수 | 동적으로 생성된 객체 |
크기 | 컴파일시 정해짐. 이후 바꿀 수 없음. 일반적으로 작음 | 동적으로 할당. 객체의 크기에 따라 다름. 일반적으로 큼 |
기본 크기 | 1MB, -Xss옵션을 통해 조절 가능 | |
수명 | 메서드 동작이 끝나는 즉시 자동으로 제거 | 수동으로 해제. GC가 검사 후 해제. |
메모리 누수 | 없음 | 있음 |
반응형
'Development > Technical Interview' 카테고리의 다른 글
[면접 준비 - CS]객체 지향 프로그래밍 vs. 함수형 프로그래밍 (0) | 2023.04.25 |
---|---|
[면접 준비 - CS]동기, 비동기 / 블로킹, 논블로킹 (0) | 2023.04.24 |
[면접 준비 - CS]프로그램/컴파일러&인터프리터/RAM 가격 (1) | 2023.04.22 |
[면접 준비 - CS]16진수 (0) | 2023.03.30 |
[면접 준비 - CS]32비트 운영체제의 램 용량 제한 (0) | 2023.03.30 |
[면접 준비 - Network]CORS에 대하여 - 2 (0) | 2023.03.21 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 유럽여행
- 여행
- java
- RX100M5
- 중남미
- 세계일주
- 백준
- a6000
- Algorithm
- 지지
- 스프링
- 스트림
- 알고리즘
- 자바
- 파이썬
- 남미
- 리스트
- Backjoon
- Python
- 기술면접
- 세모
- spring
- 동적계획법
- BOJ
- 세계여행
- 면접 준비
- 유럽
- 맛집
- 야경
- 칼이사
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함