개발 공부/C# 기초

[C# 기초] 자료형(값 형, 참조형), 메모리 구조(코드, 데이터, 스택, 힙)

아밍나 2023. 1. 17. 13:35
728x90

C# 자료형 - Value Type, Reference Type

1) 값 형 (Value Type)

실제 데이터 값을 저장하는 자료형.

ex) int, char, bool, enum, struct 등

2) 참조형 (Reference Type)

값이 저장되어 있는 곳의 위치(주소값)를 저장하는 자료형.

ex) string, object 등

 

  • 스택(Stack) 영역과 힙(Heap) 영역을 동시에 이용함.
    • 스택 영역 - 데이터의 주소 저장.
    • 힙 영역 - 데이터의 저장.
  • 코드 블록이 끝나면 스택에 있는 데이터의 주소는 사라진다.
  • 에 있는 데이터의 값은 남게 되는데 이때 GC(가비지 컬렉터)가 힙을 청소한다.

C# 메모리 구조 - Code, Data, Stack, Heap

1) 코드(Code)

프로그램의 소스 코드가 저장되는 공간.
  • 프로그램을 실행하면 클래스 내부의 변수나 함수를 변경할 수 없다.
    • 코드 영역에 클래스 자체가 존재하기 때문.

2) 데이터 (Data)

프로그램 시작과 동시에 할당되는 메모리 공간.
  • 저장되는 데이터 형식: 전역변수, static
  • 프로그램 시작과 동시에 데이터를 메모리에 저장 → 프로그램 종료 시 해제.
  • 프로그램 실행 시, 프로그램 종료 전까지 메모리 영역에 존재하기 때문에 다른 메서드에서 공용 변수로 사용할 수 있다.

3) 스택 (Stack)

호출한 함수를 위해 할당되는 메모리 공간.
  • 저장되는 데이터 형식: 값 형식(Value Type) - 지역변수, 매개변수
  • 함수가 실행되며 데이터를 메모리에 저장 → 함수 수행 후 메모리 해제되며 데이터도 해제.
  • LIFO(Last In First Out).
  • 함수 수행이 끝나면 메모리가 자동으로 해제되기 때문에 관리할 필요가 없음.

4) 힙 (Heap)

참조 형식을 위해 할당되는 메모리 공간.
  • 저장되는 데이터 형식: 참조 형식(Reference Type) - 인스턴스
    • 프로그램 프로세스가 사용할 수 있게 미리 예약된 메인 메모리 영역.
    • 가변적인 양의 데이터를 저장.
  • 계층 구조
    • 중간 메모리가 해제되면 계층 구조가 사라지거나 노드 사이 관계가 사라짐. → 빈 공간
    • 힙은 GC관리가 되는 영역.
인스턴스(instance)
: 클래스가 힙 메모리 공간에 생성된 상태.
→ 클래스가 생성될 때마다 매번 다른 메모리 공간을 가짐.
 

[C# 기초] 클래스(Class), 인스턴스(Instance), 인스턴스 생성

클래스(Class) 일종의 타입이자 틀. 인스턴스(Instance) 클래스를 객체로 만드는 과정(인스턴스화)을 통해 만들어진 객체. -> 데이터가 저장되어 있는 메모리의 주소값이 저장됨. 인스턴스 생성 (1)CLAS

it-amin.tistory.com


학습을 진행하며 제가 이해한대로 작성하였기 때문에 틀린 부분이 있을 수 있습니다.

참고한 사이트는 하단에 기재하였습니다.

감사합니다.

 

 

 

 

 

 

 

 

 


참고 사이트)

 

C# 메모리 구조

메모리 구조에 대한 설명

velog.io

 

 

Memory 구조

Memory 데이터의 저장공간. 이 데이터 저장공간에는 여러 데이터 타입들 각각의 저장공간이 존재한다. 보통 data, stack, heap 정도로 분류된다. C# 의 자료형에는 값 형식 ( value type )과 참조 형식 ( refer

godnr149.tistory.com

 

 

[C#] 메모리(+ 가비지)

1. C# 메모리 구조 2. C# 메모리 관리 1. C# 메모리 구조 메모리의 영역에는 4가지가 있습니다. Stack 영역 지역 변수, 매개 변수를 저장. 컴파일 시점에 크기를 할당하는 정적 할당을 사용 Heap 영역 사

geukggom.tistory.com

 

728x90
반응형