힙2 [면접준비] 싱글톤과 static의 차이점 1. 싱글톤 - 단 하나의 객체(인스턴스)만을 생성하여 해당 객체를 공유하는 디자인 패턴 - 객체를 생성하려고 할 때마다 이미 생성된 것을 반환하거나 없다면 해당 시간에 처음 생성함 - 정적 클래스와 달리 싱글톤 클래스는 확장, 재정의, 인터페이스 구현이 가능 - 생성 시점을 조정 가능 - 객체이므로 힙에 싱글톤 객체가 저장됨 -> 쓰레드간 공유 가능 - 직렬화가 가능 2. static - 객체를 만들지 않고, 생성자도 갖지 않음 - 인터페이스 구현 불가능 - override 불가능 - 퍼포먼스는 빠름 - 절차지향적 성향이 강함 -> 무분별한 사용은 객체 지향을 해침 - 어플리케이션이 메모리에 로드될 때 스택에 바로 초기화 - 정적 스택에 저장되기 때문에 쓰레드 관리가 어려움 Q. 왜 static을 쓰지.. 2023. 8. 16. [C++] 메모리 구조 1. Text 영역(Code 영역) - 작성한 코드들이 컴파일 이후 기계어로 번역되어 저장되어 있는 공간 - 프로그램이 끝날때까지 메모리에 남아있음 - 읽기 전용 공간 2. Rodata 영역 - Read Only data, 즉 읽기 전용 data들이 저장되는 공간 - const 변수, 문자열 상수, printf의 중괄호 부분이 주로 들어감 3. Data 영역 - 전역 변수, 전역 배열, 전역 구조체 등을 저장하는 공간 - 정적 변수(static)도 저장 - 초기화 한 이후의 전역변수를 저장 4. Bss 영역 - Data와 매우 비슷 - 전역 변수(배열, 구조체 포함), 정적 변수 저장 - 초기화 이전의 전역변수를 저장(차이점) cf) 전역변수들은 main이 실행되기 전에 bss에 저장되며, bss 영역에.. 2023. 7. 19. 이전 1 다음