구분 | 값 형식(Value Type) | 참조 형식(Reference Type) |
종류 | 내장형 (int, char, float,…)
사용자 정의형 (enum, stuct) |
Object, string, class, interface, delegate, .. |
메모리 사용 | 스택 | 스택, 힙 |
대입(Assignment) | 복사 | 참조 변경 |
크기 | 고정 | 가변 |
Garbage Collector 지원 | 지원 안됨 | 지원 됨 |
값형식(Value Type)은 메모리를 직접 가리킨다. 참조형식(Reference Type)은 메모리를 참조를 통해서 가리킨다.
값형식(Value Type)은 변수의 선언과 동시에 메모리에 생성한다. 참조형식(Reference Type)은 변수의 선언과 메모리 생성 분리하여 생성한다.
값형식(Value Type)은 값형식끼리 할당 할 때 메모리의 값들을 그대로 복사한다. 참조형식(Reference Type)은 참조형식끼리 할당 할때 참조값만을 복사한다.
http://dis.dankook.ac.kr/lectures/hci10/entry/Value-Type과-Reference-Type의-비교