Deff_Dev
모의 면접 질문 (2) 본문
1. C# 구조체와 클래스의 차이는 ?
- 구조체는 값 형식의 데이터 구조이고 클래스는 참조 형식의 데이터 구조이다.
2. 클래스를 사용할 때, 주의 할 점
- 클래스 객체의 할당을 자주하다 보면 GC에 부하를 줄 수 있기 때문에 꼭 필요한 객체만 생성해야한다.
- 클래스를 이용해 새로운 인스턴스를 만들 때, 깊은 복사를 이용해야 새로운 인스턴스가 생성된다.
3. GC 내부 동작
- 힙 메모리에 할당할 수 있는 공간이 없을 때, GC가 자체적으로 실행되는데, 힙 메모리를 탐색하면서 사용하지 않는 객체를 찾고 메모리를 해제하는 방식으로 동작한다.
4. GC 제네레이션
- GC는 0, 1, 2 세대로 나눠서 0, 1 ,2 세대 순으로 메모리를 탐색하고 쓰레기 메모리를 할당 해제한다.
- GC에서 살아남은 메모리들은 다음 세대로 넘어가는 형식이다.
5. 클래스의 대입 문제
- 얕은 복사는 new로 새로운 객체를 생성하지 않고 참조 값만 복사할 때는 얘기한다.
- 그렇기 때문에 새로운 인스턴스를 생성할 땐 깊은 복사로, new를 이용하여 새로운 인스턴스를 생성한 뒤, 대입 해야한다.
6. 클래스안에 클래스가 존재할 때는 어떻게 할 것 인가 ?
- 생성자 안에 해당 클래스를 생성할 수 있는 new 키워드를 넣어 해결할 거 같다.
7. 구조체는 얕은 복사나 깊은 복사가 일어나는지 ?
- 구조체는 기본적으로 값 타입이기 때문에 얕은 복사가 일어나고 깊은 복사가 일어나지 않지, 구조체 안에 클래스가 있는 경우와 같이 예외적인 상황이 있을 수 있다.
'면접 질문 정리 > 모의 면접 질문' 카테고리의 다른 글
모의 면접 질문 (1) (0) | 2024.07.18 |
---|