1. Interface
-
의미
- 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스
- 앞, 뒤의 통신 규약 → 동시 개발 가능.
-
추상 메서드로 구현체에게 구현을 강제함
-
기본 메서드 제공
- 자바는 단일 상속, 인터페이스는 다중 구현이 가능
-> 충돌나는 메서드 시그니처는 오버리이딩을 강제함
-
static 메서드
- 변수(상수) : 타입 상수명 = 값;
- 추상 메서드 : 타입 메서드명();
- 디폴트 메서드 : default 타입 메소드명(파라미터, ...){}
- 정적 메서드 : static 타입 메서드명(){}
2. Stream
-
의미
- 배열이나 컬렉션에 담긴 데이터를 다룰 때 반복문이나 iterator를 사용하면 가독성이 떨어지는 것을 해결하기 위한 것
-
특징
- 데이터를 변경하지 않음
- 재사용이 불가 -> 최종 연산이 실행된 후 재사용 불가
-
스트림 파이프라인
- 0 ~ N개의 중개 연산(Stream을 리턴)과 1개의 종료 연산(Stream 리턴 안함)으로 구성
-
대표 스트림
-
중개 연산자
- 필터링 : filter, distinct
- 변환 : map, flatMap
- 제한 : limit, skip
- 정렬 : sorted
-
최종 연산
- 요소 출력 : forEach
- 요소 검색 : findFirst, findAny
- 요소 통계 : count, min max
- 요소 연산 : sum, average
- 요소 수집 : collect
3. Optional
-
의미
- NPE(Null Pointer Exception) 예외를 Optional이 제공하는 메소드로 간단하게 회피할 수 있음
- 잘못 사용하면 오히려 코드가 지저분해지고 의미없는 동작, Side-Effect 유발이 많이 발생할 수 있음
- 메소드 반환 타입으로만 사용해야 함
-
코드
- empty()
- of()
- ofNullable()
- ifPresent()
- orElse()
- orElseGet()
- orElseThrow()
반성..
분명 노션에 영상 올려주셨다 했는데 나는 강의자료 모음인 줄 알고 계속 새로고침을 하다 안 보이길래 올라올 때까지 전에 제대로 못봤던 영상들이나 다시 보고 있어야겠다~ 했는데 알고보니 오늘 강의자료 안에 있었던 것이었고!!! 그걸 저녁시간 다 되어서야 알아버렸고,,ㅠ 물론! 전에 것도 복습할 수 있어서 좋았지만 오늘 배운 것을 복습할 수 있었다면 더 좋지 않았을까,,, 내일 이어서 들어야하니까ㅜㅠ 아쉽지만 내가 못 찾은 거라 할 말이 없넹 ㅎㅎㅎㅎ 다음에는 꼼꼼히 확인해봐야지!