Section 1. 모의 면접

Kim·2022년 9월 21일
0

Retrospect

목록 보기
3/11
post-thumbnail

오늘은 페어와 함께 기술 면접 연습을 진행했다.
아래에 3개의 질문에 대한 답변 내용을 정리해보았다.


클래스와 객체

자바에서의 클래스는 객체를 만들기 위한 설계도입니다. 클래스에는 객체를 생성하기 위한 필드와 메소드가 정의되어 있으며, 클래스로부터 만들어진 객체를 해당 클래스의 인스턴스라고 합니다.
그리고 클래스로부터 객체를 만드는 과정을 인스턴스화라고 합니다.

객체는 모든 인스턴스를 포괄하는 넓은 의미를 갖고 있습니다. 변수와 데이터의 구조, 함수, 메서드가 될 수 있고, 식별자가 참조하는 메모리의 값도 객체입니다.

List, Set, Map의 차이

List는 순서가 있는 저장 공간입니다. List의 크기는 가변적이고 중복을 허용합니다. 또한. 인덱스로 원소에 접근이 가능합니다.

Map은 key와 value의 한 쌍으로 이루어지는 데이터의 집합입니다. 검색 속도가 빠르고 key에 대한 중복이 없으며 순서를 보장하지 않습니다. 인덱스가 존재하지 않아서 iterator를 사용합니다.

Set은 데이터의 집합을 말합니다. 순서가 없고 중복된 데이터를 허용하지 않으며 검색 속도가 빠르다는 특징이 있습니다.

List, Set, Map의 종류

🌐 List의 종류로는 LinkedList와 ArrayList가 있습니다.

  • LinkedList는 양방향의 포인터 구조로 데이터의 삽입, 삭제가 빠르지만 검색이 느립니다.
  • ArrayList는 단방향의 포인터 구조로 데이터에 순차적으로 접근하여 검색이 빠르지만, 데이터의 삽입과 삭제가 느립니다.

🌐 Map의 종류로는 HashMap과 HashTable, LinkedHashMap, TreeMap이 있습니다.

  • HashMap은 key와 value 값으로 Null값을 허용하며 동기화가 보장되지 않고, 검색 성능이 가장 뛰어납니다.
  • HashTable은 동기화가 보장되어 병렬 프로그래밍이 가능하며, Null값을 허용하지 않습니다.
  • LinkedHashMap은 입력된 순서를 보장합니다.
  • TreeMap은 이진 탐색 트리를 기반으로 키와 값을 저장합니다. Key의 값을 기준으로 오름차순 정렬되며 검색이 빠릅니다.

🌐 Set의 종류로는 HashSet, LinkedHashSet, TreeSet이 있습니다.

  • HashSet : 인스턴스의 해시값을 기준으로 저장하여 순서를 보장하지 않고 null값을 허용합니다.
  • LinkedHashSet : 입력된 순서를 보장합니다.
  • TreeSet : 데이터가 오름차순으로 정렬됩니다.

이너 클래스의 장점

우선, 이너 클래스란 하나의 클래스 내부에 선언된 또 다른 클래스를 말합니다.

이너 클래스를 사용하면 외부 클래스의 멤버에 쉽게 접근이 가능합니다.
서로 관련 있는 클래스들을 묶어서 표현하기 때문에 코드의 캡슐화를 증가시킵니다.
또한, 외부에서 이너 클래스에 접근할 수 없어 코드의 복잡성을 줄일 수 있습니다.

이너 클래스의 종류

이너 클래스의 종류는 정적 클래스, 인스턴스 클래스, 지역 클래스, 익명 클래스가 있습니다.

  • 정적 클래스는 외부 클래스 영역에 선언된 클래스 중, static 키워드를 가지는 클래스를 말합니다.
  • 인스턴스 클래스는 외부 클래스 영역에 선언된 클래스 중에서 static 클래스를 가지지 않는 클래스를 말합니다.
  • 지역 클래스는 외부 클래스의 메소드나 초기화 블록에 선언된 클래스를 말합니다. 지역 클래스는 선언된 블록 내에서만 사용할 수 있습니다.
  • 마지막으로 익명 클래스는 이름을 가지지 않는 클래스를 말합니다. 클래스의 선언과 동시에 객체를 생성하여 단 하나의 객체만을 생성하는 일회용 클래스입니다.
    생성자를 선언할 수 없고, 단 하나의 클래스 또는 인터페이스를 상속 받거나 구현할 수 있습니다.

0개의 댓글