코드 그라데이션

스프링 개발을 위한 기초 지식(Java) 본문

Spring/핵심 가이드

스프링 개발을 위한 기초 지식(Java)

완벽한 장면 2023. 1. 14. 18:19

인터페이스

: Java에서 클래스에 포함하는 메서드의 구체적인 내용을 작성하지 않고 상수와 메서드 타입만 정의한 것을 말한다.

- 인터페이스는 다른 클래스에서 구현하는 것을 전제로 만들어진다.

- 그래서 인터페이스를 선언한 메서드는 암묵적으로 public abstract 접근 제어자가 붙은 추상 클래스라고 불린다.

- 인터페이스를 구현할 때는 implements 키워드를 사용한다.

- 인터페이스로 정의되는 추상 메서드를 모두 구현할 필요가 있어 구현하지 않는 경우에는 컴파일 에러가 발생한다.

- 인터페이스의 추상 메서드는 암묵적으로 public abstract 한정자가 붙기 때문에 구현할 때는 public을 선언해 둘 필요가 있다.

 

@Override

: 슈퍼 클래스나 인터페이스의 메서드를 상속 혹은 구현하는 클래스에서 재정의하는 것.

--> 재정의 되지 않으면, 에러가 발생.

 

리스트 -> 자바에서는 복수의 데이터를 더 쉽게 사용할 수 있는 컬랙션 클래스를 제공

 

컬랙션의 종류

1) List : 순서대로 데이터를 저장. 데이터의 중복을 허용함.

2) Set : 순서를 유지하지 않는 집합. 중복을 허용하지 않는다.

3) Map : '키' - '값'의 쌍으로 이루어진 데이터의 집합

- 순서는 유지되지 않고, 키의 중복은 허용하지 않되, 값의 중복을 허용.

 

<List Interface의 구현 클래스>

구현 개요
ArrayList - 리스트 인터페이스의 구현 클래스에서 가장 많이 사용된다.
- 요소를 배열로 유지하기 때문에 검색을 고속으로 처리할 수 있지만,
  요소의 수가 많아지면 추가/.삭제를 처리하는 데 시간이 걸린다.
LinkedList - 요소끼리 전후 양방향의 링크로 참조하는 리스트 구조를 이용해 관리하기 때문에
  요소의 추가나 삭제가 ArrayList보다 빠르다. 
- 특정 요소 검색 등 인덱스 값에 의한 무작위 액세스에는 적합하지 않다.

 

- List에 넣을 수 있는 형태를 제한하는 것이 바로 '제네릭(Generic)'. 아래에서 <String> 부분을 제네릭이라고 한다.

List<String> names = new ArrayList<>();

// List는 여러 데이터를 다룰 때 자주 사용한다.
// 그리고 제네릭은 List를 사용할 때 대부분 함께 적는다.

 

728x90
Comments