C# 메모리 구조 C샵
2008/05/28 08:51 http://blog.naver.com/organiza/70031491336 |
C#은 메서드, 변수, 클래스 객체 등의 값을 저장하는 3개의 메모리 공간을 갖고 있다.
1. 메서드 영역(Method Area):
- 클래스의 메서드에 대한 바이트 코드, 클래스의 전역 변수 등을 할당하는 메모리 영역
2. 스택(Stack):
- 메서드가 실행될 때 매개변수, 메서드 내에 선언된 지역변수, 임시 변수들이 스택 메모리 영역에 저장되며 메서드 실행이 종료되면 스택 메모리는 시스템에 반환함
3. Heap:
- 객체를 사용할때 사용하는 중요한 메모리 공간
힙 메모리는 new 연산자를 사용해 인스턴스를 생성하는 메모리 공간이다.
힙에는 클래스, 배열, 문자열 등의 객체 인스턴스를 저장함
메서드 영역 |
메서드의 바이트 코드 |
클래스 변수 |
스택(Stack) |
매개변수 |
지역변수 |
메서드 실행이 종료되면 스택 메모리는 시스템에 반환함 |
힙(Heap) |
클래스 객체 |
배열 객체 |
문자열 객체 |