Value Type 과 Reference Type 이해
ㅁ CTS(Common Type System)
- CTS는 서로 다른 언어에서 상호작용을 하기위한 표준 데이터 형식을 정의 한 것이다.
. 서로 다른 Language로 제작된 class의 인스턴스를 만들거나 상속받을 때는 해당 class에서 사용
하는 data type을 알아야한다.
ㅁ Value Type
- 메모리 상의 스택(stack)에 저장됨
. Stack이란 고정된 길이를 갖는 데이터를 저장하는 영역이다.
- 변수 선언시 실제 값을 내부에 가짐
- 변수 대입시 같은 데이터의 복사본을 메모리에 만듬(서로 영향을 미치지 않는다.)
. 예를 들면 int 타입의 변수가 두개가 있다고 해보자. a 값은 1이고 b의 값은 a의 값을 넣는다..
코드로 보면 b = a; 이런식으로 될것이다. 이렇게대입하고 나서 a 의 값을 변경해도 b의 값은 영향
을 받지 않는다.
- Value Type 의 종류 : 정수형, 부동소수점형, decimal 형, boolean 형, 구조체(struct)
ㅁ Reference Type
- 메모리 상의 힙(Heap)에 저장됨
. Heap : 동적인 크기를 가진 데이터를 저장하는 공간(자유공간)
- 변수 선언시 변수는 실제 값이 저장된 위치에 대한 주소를 가짐
- 변수 대입시 주소 값을 복사하게됨 (서로 영향을 미칠 수 있다.)
. Value Type 처럼 값이 복사가 되는게 아니라 값이 있는 주소값이 복사가 되기 때문에 그 주소에
있는 값이 변경되면 영향을 미칠 수 있다.
- Reference Type의 종류 : class, interface,배열(array),위임(delegate)