Skip to content

20201214

Sunny92 edited this page Dec 14, 2020 · 1 revision

회고

Sunny

  • 람다, 스트림을 제대로 배울 수 있어 좋았다.
  • Practical 모던자바를 통해 내용을 좀 더 보충할 수 있었다.
  • 금요일 면접이라서 두근거린다.

Han

  • 스터디에는 큰 부담은 없었다. 인터페이스에서 람다가 나와도 이해하기 쉬웠다.
  • 1기동안 이펙티브 자바 아이템 반까지와서 기쁨.
  • 지난주에 3개월째라 면담할 수 있는 기회를 얻어 좋았다.
  • 회사에 당첨

Henry

  • 람다, 스트림이 실제 많이 사용할 수 있는 내용이라 알기 쉬웠다.
  • 회사에서 새로 시작하는 프로그램에서 개발할 듯.
  • K - 연휴다.

Jack

  • 내용 자체는 익숙한 내용이라 재밌게 읽었으나 이번주 바쁜시기라 제대로 읽지는 못함.
  • 필요한 기술을 배우는게 먼저 우선.

그 외

  • Out: Jack // In: Ever
  • 스터디 2기는 어떻게 시작할까?
  • 2기는 1월 11일 (3개월) , item 46 ~ 90까지

Items

[아이템 42]

  • 대부분의 경우에는 익명클래스 대신 람다를 쓰자.
  • 람다, 익명 클래스는 직렬화를 삼가야한다. -> 가상머신마다 직렬화된 객체가 달라진다.
  • Comparator는 직렬화가 가능한 데이터 구조(TreeSet, TreeMap)에서 Comparator를 사용하기 위해 직렬화를 한다.
  • 나중에 조사할 것(Comparator 직렬화)

[아이템 43]

  • 비한정적
List<String> list = new ArrayList<>();
list.stream().sorted((String a, String b) -> a.compareTo(b))
list.stream().sorted(String::compareTo)
Calendar cal = Calendar.getInstance();
cal::getTime // 한정적 메서드 참조다.
  • 한정적 메서드 참조는 외부에서 정의한 객체의 메서드를 참조할 때 사용되며
  • 비한정적 메서드 참조는 람다 표현식 내부에서 생성한 객체의 메서드를 참조할 때 사용한다.

[아이템 44]

@FunctionalInterface 
interface EldestEntryRemovalFunction<K,V> {
    ...
}
  • 일반 인터페이스와 함수형 인터페이스의 차이점
  • 일반은 여러 메서드가 가능, 함수형 인터페이스는 하나이며 람다에서 함수형 인터페이스로 정의한 인터페이스만 가능.
  • @FunctionalInterface 를 붙여야 반드시 함수형 인터페이스는 아니다.

[아이템 45]

  • 스트림을 과용하면 프로그램의 유지보수가 어려워진다.
  • 반복문 같은 경우 스트림과 일반 for문을 둘 다 해보고 간단한 것을 써라.
  • 스트림이 두개이상이면 일반 for문을 쓰자.

마무리

  • Jack: 아이템 45(책의 아이템 절반)까지 잘 오고 지금은 잠시 멈추지만 나중엔 서로 도움이 되는 스터디였으면 좋겠다.
  • Henry: 강제성이 있으니 좀 더 자세하게 읽고, 스터디하면서 책 이외의 자바에 대한 의견을 나눌 수 있어서 좋았다. 직장이 우선순위가 있어 나가서 아쉽다.
Clone this wiki locally