반응형
1. 자바란 무엇인가요?
- 답변: 자바는 객체지향 프로그래밍 언어로, 플랫폼 독립적이며 JVM을 통해 다양한 운영체제에서 실행됩니다. "Write Once, Run Anywhere" 원칙을 따릅니다.
2. 자바의 특징은 무엇인가요?
- 답변: 자바는 객체지향, 플랫폼 독립성, 자동 메모리 관리, 멀티스레딩 지원, 강력한 보안, 네트워크 프로그래밍이 용이한 특징이 있습니다.
3. 자바에서 오버라이딩과 오버로딩의 차이점은 무엇인가요?
- 답변: 오버라이딩은 부모 클래스의 메서드를 자식 클래스에서 재정의하는 것이며, 오버로딩은 메서드 이름은 같지만 매개변수의 수나 타입을 다르게 하여 여러 메서드를 정의하는 것입니다.
4. 자바에서 예외 처리란 무엇인가요?
- 답변: 예외 처리는 프로그램 실행 중 발생할 수 있는 오류를 처리하여 프로그램의 비정상 종료를 방지하는 방법입니다. try, catch, finally를 사용합니다.
5. 자바의 컬렉션 프레임워크란 무엇인가요?
- 답변: 자바 컬렉션 프레임워크는 데이터를 효율적으로 관리하고 처리할 수 있도록 제공되는 인터페이스와 클래스의 집합입니다. List, Set, Map 등 다양한 클래스가 포함됩니다.
6. 자바에서 동기화(Synchronization)란 무엇인가요?
- 답변: 동기화는 멀티스레딩 환경에서 하나의 자원에 대해 여러 스레드가 동시에 접근하지 않도록 보장하여 데이터의 일관성을 유지하는 방법입니다.
7. 자바에서 final, finally, finalize의 차이점은 무엇인가요?
- 답변:
- final: 변수, 메서드, 클래스에 사용되어 변경할 수 없게 만듭니다.
- finally: 예외 처리 블록에서 예외와 상관없이 실행되는 블록입니다.
- finalize: 객체가 가비지 컬렉션될 때 호출되는 메서드입니다.
8. 자바에서 다형성(Polymorphism)란 무엇인가요?
- 답변: 다형성은 동일한 메서드가 객체에 따라 다르게 동작하는 특성을 말합니다. 오버로딩과 오버라이딩을 통해 구현됩니다.
9. 자바에서 추상 클래스와 인터페이스의 차이점은 무엇인가요?
- 답변: 추상 클래스는 일부 구현을 가진 메서드를 포함할 수 있고, 클래스 간 상속에서 사용됩니다. 인터페이스는 모든 메서드가 기본적으로 추상 메서드이며 다중 상속을 위해 사용됩니다.
10. 자바에서 String과 StringBuffer의 차이점은 무엇인가요?
- 답변: String은 불변(immutable) 클래스이고, StringBuffer는 가변(mutable) 클래스입니다. StringBuffer는 문자열을 변경할 때 더 효율적입니다.
11. 자바에서 HashMap과 Hashtable의 차이점은 무엇인가요?
- 답변: HashMap은 동기화를 지원하지 않으며, null 값을 허용합니다. 반면 Hashtable은 동기화를 지원하고 null 키나 값을 허용하지 않습니다.
12. 자바에서 스레드(Thread)란 무엇인가요?
- 답변: 스레드는 프로세스 내에서 실행되는 하나의 작업 단위로, 자바에서는 Thread 클래스를 상속하거나 Runnable 인터페이스를 구현하여 스레드를 생성할 수 있습니다.
13. 자바에서 synchronized 키워드는 무엇을 의미하나요?
- 답변: synchronized는 멀티스레딩 환경에서 여러 스레드가 동일한 자원에 접근하지 않도록 보장하는 키워드입니다. 이를 통해 데이터의 일관성을 유지합니다.
14. 자바에서 super와 this 키워드의 차이점은 무엇인가요?
- 답변: super는 부모 클래스의 메서드나 생성자를 호출할 때 사용하고, this는 현재 객체의 메서드나 생성자를 호출할 때 사용합니다.
반응형
15. 자바에서 객체 지향의 4대 특성은 무엇인가요?
- 답변: 객체 지향의 4대 특성은 캡슐화, 상속, 다형성, 추상화입니다.
16. 자바에서 new 키워드는 무엇을 하는가요?
- 답변: new 키워드는 객체를 생성하고, 해당 객체의 메모리 공간을 할당하는 데 사용됩니다.
17. 자바에서 static 키워드는 무엇을 의미하나요?
- 답변: static은 클래스 변수나 메서드를 정의할 때 사용됩니다. 클래스 로딩 시 메모리에 할당되며, 객체를 생성하지 않고도 호출할 수 있습니다.
18. 자바에서 this 키워드를 사용한 예시를 보여주세요.
- 답변: this는 현재 객체를 참조하는 키워드입니다. 예를 들어, 생성자에서 필드를 초기화할 때 this를 사용하여 구분할 수 있습니다.
19. 자바에서 "가비지 컬렉션(Garbage Collection)"이란 무엇인가요?
- 답변: 가비지 컬렉션은 더 이상 사용되지 않는 객체를 자동으로 메모리에서 제거하는 자바의 기능입니다.
20. 자바에서 "static block"은 무엇인가요?
- 답변: static block은 클래스가 메모리에 로드될 때 단 한 번 실행되는 코드 블록입니다. 주로 정적 변수 초기화에 사용됩니다.
21. 자바에서 enum 클래스란 무엇인가요?
- 답변: enum은 고정된 상수값을 정의하는 클래스입니다. 주로 상수 집합을 정의할 때 사용됩니다.
22. 자바에서 instanceof 연산자의 역할은 무엇인가요?
- 답변: instanceof는 객체가 특정 클래스의 인스턴스인지 확인하는 연산자입니다.
23. 자바에서 "Thread-safe"란 무엇인가요?
- 답변: 스레드 안전(Thread-safe)은 여러 스레드가 동시에 접근할 때 데이터가 일관성을 유지하는 상태를 말합니다.
24. 자바에서 wait(), notify(), notifyAll() 메서드의 차이점은 무엇인가요?
- 답변: wait()은 스레드를 대기 상태로 만들고, notify()는 대기 중인 스레드 중 하나를 깨우며, notifyAll()은 대기 중인 모든 스레드를 깨웁니다.
25. 자바에서 assert 키워드란 무엇인가요?
- 답변: assert는 프로그램의 디버깅 목적으로 조건이 참인지 검사하는 키워드입니다.
26. 자바에서 try-catch 블록을 사용하는 이유는 무엇인가요?
- 답변: try-catch 블록은 예외가 발생할 가능성이 있는 코드를 실행하고, 예외가 발생하면 이를 처리할 수 있도록 합니다.
27. 자바에서 Collection과 Collections의 차이점은 무엇인가요?
- 답변: Collection은 인터페이스로, 데이터를 저장하는 방법을 정의합니다. Collections는 Collection을 처리하기 위한 유틸리티 클래스입니다.
28. 자바에서 "반복문"을 어떻게 구현하나요?
- 답변: 자바에서는 for, while, do-while 등의 반복문을 사용하여 특정 조건에 따라 반복 실행할 수 있습니다.
29. 자바에서 Comparable과 Comparator의 차이점은 무엇인가요?
- 답변: Comparable은 객체의 기본 정렬 기준을 제공하며, Comparator는 외부에서 객체를 정렬할 때 사용합니다.
30. 자바에서 StringBuilder와 StringBuffer의 차이점은 무엇인가요?
- 답변: StringBuilder는 멀티스레딩을 고려하지 않고 성능을 최적화한 클래스이고, StringBuffer는 멀티스레딩 환경에서 안전하도록 설계된 클래스입니다.
반응형
'Programming > Java' 카테고리의 다른 글
JVM의 구조와 GC(Garbage Collection) 방식 이해하기 (0) | 2025.04.18 |
---|---|
면접에서 진짜 자주 나오는 자바 질문 - 섹션 7. JVM, GC, 자바 런타임 메커니즘 (1) | 2025.04.17 |
면접에서 진짜 자주 나오는 자바 질문 - 섹션 6. 스프링 MVC & REST API 설계 (0) | 2025.04.17 |
면접에서 진짜 자주 나오는 자바 질문 - 섹션 5. 예외 처리, 로깅, 설계 패턴 (0) | 2025.04.17 |
면접에서 진짜 자주 나오는 자바 질문 - 섹션 4. 자바 8 핵심 기능 (0) | 2025.04.17 |