값 타입 - 구조체
참조 타입 - 클래스
서로가 서로의 멤버를 가질수 있다

1) 참조 타입 안에 값 타입이 있을 경우


Position - 좌표에 대한 정보
Pixel - Position을 멤버로 가짐
좌표 - Position 타입의 변수 포함
Position은 구조체, Pixel은 클래스 로써 참조 타입 안에 값 타입을 포함

- p1, p2는 참조 타입인 클래스이며 데이터는 모두 힙에 있다
- 클래스 안에 포함된 멤버들은 클래스가 생성될때 힙에 같이 생성된다
- 값 타입이 참조 타입인 클래스에 소속되어 있기 때문에 스택이 아닌 힙에 생성되며 힙은 값이 커서 얼마든지 저장 가능하다





2) 값 타입이 참조 타입을 멤버로 포함 하는 경우




- p1은 구조체 이므로 일단 스택에 생성
- 참조 타입인 클래스가 값 타입인 구조체에 포함되어있다, 스택은 용량이 제한되어있어 저장할수가 없다





- 값 타입은 스택에, 참조 타입은 힙에 생성되는 것이 원칙이며,
참조에 포함된 값은 힙에 같이 생성되지만, 값에 포함된 참조는 여전히 힙에 생성된다

Posted by 코딩하는 야구쟁이
,