-
[CS/JAVA] 가비지 컬렉션 / 객체지향 설계의 원칙CS/Java 2024. 11. 26. 16:53
• 가비지 컬렉션(Garbage Collection)에 대해 설명해주세요.
- 가비지 컬렉션은 JVM의 메모리 관리 기법 중 하나로, 시스템에서 동적으로 할당됐던 메모리 영역 중에서 필요없어진 메모리 영역을 회수하여 메모리를 관리해주는 기법입니다.
• 가비지 컬렉션 과정에 대해 설명해주세요.
- GC의 작업을 수행하기 위해서 JVM이 어플리케이션의 실행을 잠시 멈추고, GC를 실행하는 쓰레드를 제외한 모든 쓰레드들의 작업을 중단 후 (Stop The World 과정), 사용하지 않는 메모리를 제거(Mark and Sweep 과정)하고 작업이 제개됩니다.
- GC의 작업은 Young 영역에 대한 Minor GC와 Old 영역에 대한 Major GC로 구분됩니다.
• 객체지향의 설계원칙에 대해 설명해주세요.
- SRP - 단일 책임의 원칙 : 한 클래스는 하나의 책임만 가져야 합니다.
- OCP - 개방 폐쇠의 원칙 : 확장에는 열려있고, 수정에는 닫혀있어야 합니다.
- LSP - 리스코프 치환 원칙 : 하위 타입은 항상 상위 타입을 대체할 수 있어야 합니다.
- ISP - 인터페이스 분리의 원칙 : 인터페이스 내의 메소드는 최소한 일수록 좋습니다. (하나의 일반적인 인터페이스보다 여러개의 구체적인 인터페이스가 낫습니다.) SRP와 같은 문제에 대한 두가지 다른 해결책입니다.
- DIP - 의존관계 역전의 원칙 : 구체적인 클래스보다 상위 클래스, 인터페이스, 추상 클래스와 같이 변하지 않을 가능성이 높은 클래스와 관계를 맺어야 합니다. DIP 원칙을 따르는 가장 인기있는 방법은 의존성 주입(DI)입니다.
* 위 글은 아래 문서를 참고해 작성했습니다.
https://dev-coco.tistory.com/153
신입 개발자 기술면접 질문 정리 - 자바
💡 Java의 특징을 설명해주세요.Java는 객체지향 프로그래밍 언어입니다. 기본 자료형을 제외한 모든 요소들이 객체로 표현되고, 객체 지향 개념의 특징인 캡슐화, 상속, 다형성이 잘 적용된 언어
dev-coco.tistory.com
review 1회독 2회독 3회독 4회독 5회독 check ✅(1/22) ✅(1/23) 반응형'CS > Java' 카테고리의 다른 글
[CS/JAVA] Wrapper Class / Boxing과 UnBoxing / Synchronized / new String()과 리터럴("")의 차이 (0) 2025.01.22 [CS/JAVA] 자바의 메모리 영역 / 클래스와 객체 / 생성자 (0) 2024.11.26 [CS/JAVA] 추상 클래스 / 인터페이스 / 싱글톤 패턴 (0) 2024.11.24 [CS/JAVA] 객체지향 프로그래밍 / try-with-resources / 불변 객체 / 참조 타입 / final (0) 2024.11.24 [CS/JAVA] Java의 컴파일 과정 / Java의 원시 타입 / 오버라이딩 vs 오버로딩 (0) 2024.11.22