자바 개념 면접 복기 및 복습

2025. 1. 14. 15:42·🗄️ Backend/Java

 

1. 객체지향 언어란 무엇이며, 등장한 이유는 무엇인가요?

  • 정의:
    객체지향 언어는 실 세계의 사물을 추상화하여, 멤버변수(데이터)와 메서드(동작)를 정의하고, 이를 객체로 표현하는 데서 출발합니다.
  • 등장 이유:
    복잡한 프로그램 구조를 단순화하고 유지보수를 용이하게 하기 위해 등장했습니다. 기능과 데이터를 객체로 묶어 프로그램에 반영함으로써 순차적 실행이 아닌 객체 간 상호작용을 통해 동작합니다.
  • 장점:
    • 코드 재사용성: 기존 코드를 활용하여 새로운 코드를 쉽게 작성 가능.
    • 코드 관리 용이성: 적은 노력으로 코드 수정 및 변경 가능.
    • 데이터 보호: 제어자와 메서드를 통해 데이터를 보호하고, 중복 제거로 코드 불일치 방지.

2. 자바의 데이터 타입: 원시 타입과 참조 타입

  • 원시 타입(Primitive Type):
    • 변수에 값 자체를 저장.
    • 종류: boolean, byte, char, short, int, float, long, double.
  • 참조 타입(Reference Type):
    • **메모리상의 객체 위치(참조값)**를 저장.
    • 종류: 클래스, 인터페이스, 배열, 열거 타입.

3. 배열과 컬렉션의 차이점

  • 배열:
    • 단일 자료형만 저장 가능.
    • 크기가 고정적.
  • 컬렉션:
    • 다양한 자료형 저장 가능.
    • 크기가 가변적이며 동적으로 변경 가능.

4. 다형성이란 무엇인가요?

  • 정의:
    하나의 객체가 여러 타입을 가질 수 있는 성질.
  • 예:
    • 조상 클래스의 인스턴스를 사용해 자손 클래스의 객체를 다룸.
    • 메서드 오버로딩을 통해 동일한 이름의 메서드로 다양한 매개변수를 처리.

5. 멀티스레드의 장단점

  • 장점:
    • 여러 작업을 동시에 실행하여 자원 효율성 극대화.
    • 프로그램 실행 속도 개선.
  • 단점:
    • Deadlock(교착 상태) 발생 가능.
    • 동기화 검증 필요.

6. 스레드 구현 방법

  1. Thread 클래스 상속:
    • 단일 상속만 가능.
    • 단순한 구현이 장점.
  2. Runnable 인터페이스 구현:
    • 다중 상속 가능.
    • 더 유연하고 확장성이 뛰어남.

7. 자바 컬렉션의 대표 인터페이스

  • List: 순서 유지, 중복 허용.
  • Set: 순서 없음, 중복 불허.
  • Map: 키-값 쌍, 키는 중복 불허, 값은 중복 허용.

8. 컬렉션에서 제네릭(Generic)이란?

  • 데이터 타입을 명시적으로 지정하여, 원하는 타입만 저장 가능.
  • 장점:
    • 컴파일 시 타입 체크로 안정성 증가.
    • 불필요한 캐스팅 제거로 코드 간결화.

9. 접근 제어자의 종류와 특성

  • Public: 제한 없음.
  • Protected: 같은 패키지 및 다른 패키지의 자손 클래스 접근 가능.
  • Default: 같은 패키지 내에서만 접근 가능.
  • Private: 같은 클래스 내에서만 접근 가능.

10. Wrapper 클래스란?

  • 원시 타입 데이터를 객체로 변환하기 위한 클래스.
  • 종류: Byte, Short, Integer, Long, Character, Double, Boolean.

11. 추상 클래스와 인터페이스의 차이점

  • 추상 클래스:
    • 미완성 설계도로, 일반 메서드와 멤버 변수를 포함 가능.
    • 상속을 통해 구현.
  • 인터페이스:
    • 구현된 메서드 없이 기본 설계도 역할.
    • 다중 상속 가능으로 클래스 간 결합도를 낮춤.

12. 가비지 컬렉터란?

  • 사용되지 않는 메모리 영역을 탐지하여 자동으로 해제하는 기능.
  • 자바의 자동 메모리 관리 기법.

13. 오버로딩과 오버라이딩의 차이점

  • 오버로딩:
    • 같은 이름, 다른 매개변수로 메서드를 정의.
    • 컴파일 시점에서 결정.
  • 오버라이딩:
    • 부모 클래스 메서드를 자식 클래스에서 재정의.
    • 런타임 시점에서 동작.

14. 동기화란 무엇인가요?

  • 하나의 자원을 여러 테스크가 동시에 접근하지 못하도록 제어하는 기술.
  • 예: synchronized 키워드 사용.

15. 프로세스와 스레드의 차이

  • 프로세스: 실행 중인 프로그램으로, 독립된 메모리 영역 사용.
  • 스레드: 프로세스 내 작업 단위로, 동일 메모리 자원을 공유.

16. Call by Value와 Call by Reference의 차이점

  • Call by Value:
    • 값을 복사하여 전달.
    • 원본 값은 변경되지 않음.
  • Call by Reference:
    • 객체의 주소값을 전달.
    • 원본 값 변경 가능.

17. String, StringBuffer, StringBuilder의 차이점

  • String: 불변 객체, 수정 시 새로운 객체 생성.
  • StringBuffer: 가변 객체, 멀티스레드 환경에서 동기화 지원.
  • StringBuilder: 가변 객체, 동기화 미지원으로 싱글스레드 환경에 적합.

18. OSI 7계층

  1. 물리층: 물리적 전송 매체 담당.
  2. 데이터링크층: 노드 간 신뢰성 있는 데이터 전송.
  3. 네트워크층: 패킷을 목적지까지 전달.
  4. 전송층: 프로세스 간 데이터 전송.
  5. 세션층: 시스템 간 상호작용 설정 및 유지.
  6. 표현층: 데이터 구문, 암호화 및 압축 처리.
  7. 응용층: 사용자 인터페이스 제공.

이 포스팅은 면접 준비 및 복습을 위해 정리한 내용입니다. 

'🗄️ Backend > Java' 카테고리의 다른 글

익명 객체와 람다식: 자바에서의 활용  (3) 2024.10.10
Java API : 주요 클래스 및 I/O 스트림 사용법  (3) 2024.10.10
JAVA 예외 처리(Exception Handling)와 가비지 컬렉션 (Garbage Collection)  (1) 2024.10.10
JAVA 패키지와 객체지향 개념 정리  (0) 2024.10.10
JAVA 메서드와 객체지향 프로그래밍  (0) 2024.10.10
'🗄️ Backend/Java' 카테고리의 다른 글
  • 익명 객체와 람다식: 자바에서의 활용
  • Java API : 주요 클래스 및 I/O 스트림 사용법
  • JAVA 예외 처리(Exception Handling)와 가비지 컬렉션 (Garbage Collection)
  • JAVA 패키지와 객체지향 개념 정리
hjwjo
hjwjo
백엔드 및 풀스택 개발에 관심 있는 초보 개발자의 개발 블로그입니다.
  • hjwjo
    Jeongwoo's Devlog
    hjwjo
  • 전체
    오늘
    어제
    • Devlog
      • 🗄️ Backend
        • Java
        • Spring
        • JPA
        • SQL
        • JSP
        • AWS
        • GCP
        • Linux
        • GitHub
        • ML
        • Security
      • 🖥️ Frontend
        • React
        • CSS
      • 🏅 Project
        • Hackathon
        • Team Project
      • 📊 Algorithm
        • BOJ
      • 📜 Certs
        • ADsP
        • SQLD
        • 정보처리기사
      • 📖
        • JavaScript
      • 일상
        • 면접후기
  • 블로그 메뉴

    • 홈
    • Devlog
    • 태그
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    정처기
    백준
    스프링
    DML
    자바
    jsp
    스프링부트
    GCP
    쿼리
    AWS
    SQL
    java
    백엔드
    Spring
    springboot
    java기초
    데이터베이스
    http
    정보처리기사
    ADsP
  • 최근 댓글

  • 최근 글

hjwjo
자바 개념 면접 복기 및 복습
상단으로

티스토리툴바