Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 패스트캠퍼스AI부트캠프
- 패스트캠퍼스
- 패스트캠퍼스업스테이지부트캠프
- 업스테이지패스트캠퍼스
- UpstageAILab
- UpstageAILab#국비지원
- 국비지원
- 오블완
- 패스트캠퍼스업스테이지에이아이랩
- 티스토리챌린지
Archives
- Today
- Total
김민주
[JAVA 모의 면접] 면접 준비 본문
Java
- OOP의 4대 특징
- 캡슐화: 데이터를 보호하기 위해 접근 제한자를 사용하고, 클래스 내부에서만 데이터 변경을 허용합니다.
- 상속: 기존 클래스의 속성과 메서드를 재사용하며, 코드 중복을 줄입니다.
- 다형성: 같은 메서드 이름으로 다양한 실행 결과를 제공하며, 오버로딩과 오버라이딩으로 구현됩니다.
- 추상화: 불필요한 세부 정보를 숨기고 필요한 인터페이스만 노출하여 설계를 단순화합니다.
- 인터페이스와 추상 클래스의 차이
- 인터페이스는 다중 구현이 가능하며 모든 메서드가 기본적으로 추상적이고 구현을 포함할 수 없습니다(Java 8 이후 기본 메서드 예외).
- 추상 클래스는 단일 상속만 가능하며, 일반 메서드와 추상 메서드를 함께 가질 수 있습니다.
- JVM의 구조
JVM은 Class Loader로 클래스를 로드하고, Heap에서 객체를 저장하며, Stack에서 메서드 호출 및 지역 변수를 관리합니다. - Garbage Collection
사용하지 않는 객체를 자동으로 식별하여 제거하며, Mark-and-Sweep 알고리즘 등으로 동작합니다. - finalize() 메서드의 역할
객체가 Garbage Collection되기 전에 호출되지만, 성능과 신뢰성 문제로 현재는 거의 사용되지 않습니다. - 쓰레드와 프로세스의 차이
- 프로세스: 독립적 실행 단위로 별도의 메모리를 가집니다.
- 쓰레드: 프로세스 내 실행 단위로 메모리를 공유하며 가볍습니다.
- synchronized와 volatile의 차이
- synchronized는 한 번에 하나의 쓰레드만 블록에 접근하도록 보장합니다.
- volatile은 변수의 변경 내용을 모든 쓰레드에서 즉시 확인할 수 있도록 보장합니다.
- Thread Pool의 장점
쓰레드 재사용으로 생성/소멸 비용을 줄이고, 제한된 쓰레드 수로 시스템 자원을 효율적으로 관리합니다. - Checked와 Unchecked Exception
Checked Exception은 컴파일 타임에 강제로 처리해야 하며, Unchecked Exception은 런타임에 발생하고 선택적으로 처리합니다. - 커스텀 예외 구현 방법
Exception이나 RuntimeException을 상속받아 새로운 예외 클래스를 정의하고, 필요에 따라 메시지를 전달하는 생성자를 추가합니다. - List와 Set의 차이
List는 순서를 유지하고 중복을 허용하며, Set은 순서를 보장하지 않고 중복을 허용하지 않습니다. - HashMap과 Hashtable의 차이
HashMap은 동기화되지 않아 성능이 좋으며 null 키와 값을 허용하고, Hashtable은 동기화되어 스레드 안전하지만 null을 허용하지 않습니다. - ConcurrentHashMap의 동작 방식
내부적으로 Segment(버킷)를 사용해 데이터를 분리하여 동시에 여러 쓰레드가 안전하게 접근할 수 있습니다. - 람다 표현식과 스트림의 장점
람다는 코드를 간결하고 가독성 있게 하며, 스트림은 데이터를 선언적으로 처리하고 병렬 처리를 쉽게 합니다. - Optional 클래스의 사용
null 값을 처리하는데 명시적 방식을 제공하며, orElse와 ifPresent 등을 사용해 예외를 방지합니다. - Functional Interface란?
하나의 추상 메서드만 가진 인터페이스로, @FunctionalInterface로 명시 가능하며 람다식을 구현체로 사용할 수 있습니다.
'STUDY > 이론' 카테고리의 다른 글
[DF] 디지털 포렌식 개요 (0) | 2024.12.31 |
---|---|
[MSA] Client Side Load Balancing(ReignClient, Ribbon) (2) | 2024.12.04 |
[MSA] Service Discovery(Eureka) (1) | 2024.11.29 |
[Spring Master] 심화 이론 - API 예외 처리 (0) | 2024.11.28 |
[Spring Master] 숙련 이론 - 데이터 검증하기 (0) | 2024.11.28 |