ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [C# 개념] 3.3 값 형식과 참조 형식
    Anna belly belly hard/C# 2023. 6. 21. 14:54
    반응형

    - 값 형식 (Value Type) : 변수가 값을 담는 데이터 형식 => 스택 메모리 영역(Stack)

    - 참조 형식(Reference Type) : 변수가 값 대신 값이 있는 곳의 위치(참조)를 담는 데이터 형식 => 힙 메모리 영역(Heap)

    - C# 으로 작성한 프로그램이 사용하는 두가지 메모리 영역 : Stack, Heap

     

    3.3.1 스택과 값 형식

    - 값 형식의 변수는 모두 이 스택에 저장됩니다. 다시 말해, 코드 블록 안에서 생성된 모든 값 형식의 변수들은 프로그램 실행이 코드 블록을 닫는 중괄호를 만나면 메모리 에서 제거 됩니다.

     

    3.3.2 힙과 참조 형식

    - 힙은 저장된 데이터를 스스로 제거하는 메커니즘을 가지고 있지 않는다. => CLR의 가비지 컬렉터

    - 가비지 컬렉터는 프로그램 뒤에 숨어 동작하면서 힙에 더이상 사용하지 않는 객체가 있으면 그 객체를 쓰레기로 간주하고 수거하는 기능을 한다.

    - 프로그래머가 원한다면 언제 까지라도 데이터를 살릴 수 있는 또 다른 메모리 영역을 CLR 이 제공하는 것, 코드 블록이 종료되는 지점과 상관없이 그 데이터는 계속 생명을 유지한다. 그리고 이 데이터는 프로그래머가 더 이상 사용하지 않는 쓰레기가 됐을 때 가비지 컬렉터가 가져다 버립니다. 이때 메모리 에서 사라지는 것.

    - 참조형식의 힙과 스택 함께 이용되는데, 힙에는 데이터를 저장하고 , 스택 에는 데이터가 저장된 힙 메모리의 주소를 저장합니다.

     

    - 스택 : 변수의 생명주기가 다하면 자동으로 데이터를 제거.

    - 힙 : 더이상 데이터를 참조하는 곳이 없을 때 가비지 컬렉터가 데이터를 치워주는 구조의 메모리 영역.

    반응형
Designed by Tistory.