면접예상질문 - 영속성 컨텍스트, 제네릭

이지섭·2023년 6월 2일
0

List, Set, Map, HashMap의 차이에 대해서 설명해주세요.

  • List는 배열과 유사하며 순서가 있고, 중복을 허용하며 길이가 가변적입니다.
    구현체로는 링크드리스트 어레이리스트
  • Set은 집합과도 같으며 순서가 없고, 집합이므로 중복을 허용하지 않으며 속도가 빠른 편입니다.
    구현체로는 HashSet
    사용이유 : 존재여부 보려고
  • Map은 Key-Value 형태로 데이터를 관리하는 여러 형태의 Map의 행동들을 정의해놓은 인터페이스 입니다. Map들의 공통된 특징으로는 순서와 Key에 대한 중복이 없으며 속도가 빠른 편입니다.
  • HashMap은 Map 인터페이스를 implements한 클래스입니다. Key 객체의 해시값을 int형으로 버킷이라는 공간에 저장해두고, 그 값을 통해 객체를 뽑아와서 O(1)의 속도로 객체를 찾아올 수 있습니다. Key 또는 Value의 값으로써 null을 허용합니다.

스프링 컨테이너(Spring Container)에 대해 설명해주세요.

스프링이 개발자를 대신하여 자바 객체들인 bean을 생성하고 생명주기를 관리하며 의존관계를 연결해주는 공간을 말합니다.

스프링 컨테이너의 종류로는 BeanFactory와,
BeanFactory의 상속을 받은 ApplicationContext가 있습니다.

두 컨테이너는 역할이 비슷하지만

  • ApplicationContext는 BeanFactory와 달리 메세지 관리나 이벤트 발생 알림 등 여러 기능이 추가되었고,
  • BeanFactory는 getBean()메소드 호출시 빈을 생성하는 반면
    ApplicationContext는 Context 초기화 시점에 모든 싱글톤 빈을 미리 로드한 후, 어플리케이션 가동 후부터 지연없이 빈을 받을 수 있기 때문에

실무에선 BeanFactory보다 ApplicationContext를 많이 사용하는 것으로 알고있습니다.

자료구조와 알고리즘 중에서 자주 사용되는 것들은 어떤 것이 있나요?

asdfa

데이터베이스 (Database)와 ORM(Object Relational Mapping)에 대해 설명해보세요.

asdf

예상 꼬리질문 키워드

  • Set의 속도가 빠른 이유
  • Map의 Red-Black Tree 알고리즘
  • HashMap의 Thread-safe에 대해 설명해보세요
  • HashMap의 해시 충돌
  • BeanFactory와 ApplicationContext
  • 자바 객체의 생명주기
  • 싱글톤 컨테이너

메모

Map과 HashMap의 차이
자바의 특징

profile
Stop thinking. Just do it.

0개의 댓글

관련 채용 정보