728x90
728x170
프로그램의 메모리 영역
코드 영역 (Code) |
|
데이터 영역 (Data) |
|
힙 (Heap) |
↓ |
스택 영역 (Stack)) |
↑ |
- 프로그램이 사용되는 메모리 영역
- ① 코드(Code) 영역
- 명령어가 들어가는 영역
- ② 데이터(Data) 영역
- 프로그램이 컴파일되면 정적 변수 나 문자열 등이 들어가는 정적 메모리 영역
- 정해져 있어서 실행 중에 오류가 발생할 가능성이 적음.
- JVM 에서는 이 영역을 메서드 정적 영역(Method Static Area) 으로도 부름.
- ③ 힙(Heap) 영역
- 실행 중 생성되는 객체 가 만들어지는 동적 메모리 영역
- 프로그램이 동작하는 도중에 위쪽 그림의 화살표 방향으로 채워짐. (↓)
- 너무 많이 메모리를 할당하는 객체가 있을 경우
- Out of Memory 오류가 발생할 수 있음.
- 함수 호출이 재귀적으로 너무 많이 일어날 경우
- Stack Overflow 오류가 발생할 수 있음.
- 너무 많이 메모리를 할당하는 객체가 있을 경우
- ④ 스택(Stack) 영역
- 코드 블록인 중괄호(
{}
) 안에 사용한 변수 나 함수 호출 블록 이 만들어지는 임시 메모리 영역 - 중괄호 블록을 빠져나오면, 임시로 사용한 변수는 스택에서 제거됨.
- 프로그램이 동작하는 도중에 위쪽 그림의 화살표 방향으로 채워짐. (↑)
- 너무 많이 메모리를 할당하는 객체가 있을 경우
- Out of Memory 오류가 발생할 수 있음.
- 함수 호출이 재귀적으로 너무 많이 일어날 경우
- Stack Overflow 오류가 발생할 수 있음.
- 너무 많이 메모리를 할당하는 객체가 있을 경우
- 코드 블록인 중괄호(
- JVM 을 사용하는 프로그램
- 동적 메모리 영역 (힙 등) 의 객체가 사용된 뒤, 아무 참조가 없으면 자동으로 삭제하는 GC(Garbage Collector) 가 있음.
- ① 코드(Code) 영역
내용 출처 : Do It! 코틀린 프로그래밍(황영덕 지음, 이지스퍼블리싱)
728x90
그리드형(광고전용)
'Programming > Kotlin' 카테고리의 다른 글
[Kotlin] 널(Null) (0) | 2022.08.28 |
---|---|
[Kotlin] 자료형과 변수 (0) | 2022.08.27 |
[Kotlin] InteliJ IDEA 살펴보기 & main() 함수 (0) | 2022.08.26 |
[Kotlin] 자바 JDK 설치하기 / 환경 변수 설정하기 (0) | 2022.08.26 |
[Kotlin] 코틀린의 개요 (0) | 2022.08.24 |
[Kotlin] 코틀린 한 눈에 알아보기 (0) | 2022.08.21 |
보일러플레이트(Boilerplate) (0) | 2021.04.05 |
함수에서 다양한 인자의 개수를 전달받기 (vararg 키워드) (0) | 2021.03.15 |