값 형식(Value Type)과 참조 형식(Reference Type)
구분 |
값 형식(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의-비교