[실시간 강의] Interface, Stream, Optional

우정·2022년 12월 1일
0

[내일배움캠프] TIL

목록 보기
14/50

1. Interface

  • 의미

    • 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스
    • 앞, 뒤의 통신 규약 → 동시 개발 가능.
  • 추상 메서드로 구현체에게 구현을 강제함

  • 기본 메서드 제공

    • 자바는 단일 상속, 인터페이스는 다중 구현이 가능
      -> 충돌나는 메서드 시그니처는 오버리이딩을 강제함
  • static 메서드

  • 변수(상수) : 타입 상수명 = 값;
  • 추상 메서드 : 타입 메서드명();
  • 디폴트 메서드 : default 타입 메소드명(파라미터, ...){}
  • 정적 메서드 : static 타입 메서드명(){}
  • 추상클래스 vs 인터페이스

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()

반성..

분명 노션에 영상 올려주셨다 했는데 나는 강의자료 모음인 줄 알고 계속 새로고침을 하다 안 보이길래 올라올 때까지 전에 제대로 못봤던 영상들이나 다시 보고 있어야겠다~ 했는데 알고보니 오늘 강의자료 안에 있었던 것이었고!!! 그걸 저녁시간 다 되어서야 알아버렸고,,ㅠ 물론! 전에 것도 복습할 수 있어서 좋았지만 오늘 배운 것을 복습할 수 있었다면 더 좋지 않았을까,,, 내일 이어서 들어야하니까ㅜㅠ 아쉽지만 내가 못 찾은 거라 할 말이 없넹 ㅎㅎㅎㅎ 다음에는 꼼꼼히 확인해봐야지!

0개의 댓글

관련 채용 정보