struct | class |
값 타입 (값 복사) | 참조 타입 (참조 복사) |
스택에 할당 - 상대적으로 작은 크기의 데이터를 저장하기 위해 사용 | 힙에 할당 - 상대적으로 더 많은 메모리를 사용할 수 있음 |
상속 지원 X | 상속 지원 O |
기본 생성자가 제공되며 사용자 정의 생성자에서는 모든 필드를 초기화해 함 (기본 생성자에서는 초기화하지 않아도 됨) | 기본 생성자가 제공되며 사용자 정의 생성자에서 모든 필드를 초기화하지 않아도 됨 |
null값을 가질 수 없음 | null값 가질 수 있음 |
가비지 컬렉션의 대상이 아님 | 가비지 컬렉션의 대상임 |
기본 접근 지정자: public | 기본 접근 지정자: private |
struct와 class 차이 비교 요약
struct는 값 타입으로, 스택에 할당되지만 class는 참조 타입으로, 힙에 할당 됩니다.
따라서 struct는 가비지 컬렉션의 대상이 아니지만 class는 가비지 컬렉션의 대상입니다.
또 struct는 상속을 지원하지 않지만 class는 상속을 지원하며,
struct의 기본 접근 지정자는 public, class는 private입니다.
'취준 > 기술면접' 카테고리의 다른 글
배열, List, ArrayList, Dictionary (0) | 2024.01.29 |
---|---|
가비지 컬렉터, 가비지 컬렉션 (0) | 2024.01.19 |
접근제한자 (0) | 2024.01.17 |
ref와 out (C#) (1) | 2024.01.17 |
정수형과 부동소수점형, 2의 보수 (0) | 2024.01.13 |