목차/차례
1. Java에서 인터페이스와 추상 클래스의 차이점은 무엇인가요
2. Java에서 예외 처리(try-catch-finally)의 동작 원리를 설명하세요.
3. 컬렉션 프레임워크에서 List, Set, Map의 차이점과 각각의 사용 사례를 설명하세요.
4. Java의 가비지 컬렉션(Garbage Collection)이 어떻게 작동하는지 설명하세요.
5. Java에서 멀티스레딩을 구현하는 방법과 그 차이점에 대해 설명하세요.
6. Java에서 동기화(synchronized)의 역할과 이를 사용하는 상황을 예를 들어 설명하세요.
7. Java에서 객체지향 프로그래밍의 4대 원칙은 무엇이며, 각각에 대해 설명하세요.
8. Java에서 Lambda 표현식이 무엇인지, 그리고 어떤 상황에서 사용하면 좋은지 설명하세요.
본문/내용
1. Java에서 인터페이스와 추상 클래스의 차이점은 무엇인가요
Java에서 인터페이스와 추상 클래스의 차이점은 기능과 사용 목적에 따라 구분됩니다. 인터페이스는 오직 공개된 추상 메서드와 상수만을 선언하여 다중 구현이 가능하며, 8개 이하의 메서드만 선언하는 것이 권장됩니다. 반면 추상 클래스는 구현된 메서드와 추상 메서드를 모두 포함할 수 있으며, 상속받는 클래스에 기본 기능을 제공하는 역할을 합니다. 예를 들어, 2022년 SK인포섹의 보안 솔루션 개발에서는 인터페이스를 활용해 여러 모듈 간 공통 인터페이스를 제공하며, 소프트웨어 수정이나 확장 시 유연성을 확보하였고, 추상 클래스로는 공통 기능을 구현하여 반복 코드를 줄였습니다. 또한, 인터페이스는 구현하는 클래스가 여러 개일 수 있으나, 추상 클래스는 단일 상속만 가능하므로 구조적 설계에 차이가 나타납니다. 성능 측면에서 인터페이스는 JVM 8 이전 버전에서는 약간의 오버헤드가 있었으나, Java 8 이후 기본 구현이 가능해 실무 적용 시 효율적입니다. 결국 인터페이스는 다중 구현과 유연성, 추상 클래스는 기본 구현 제공과 상속 구조의 일관성 확보에 적합합니다.
2. Java에…