Skip to content

20201116

David Chung edited this page Nov 16, 2020 · 3 revisions

회고

Sunny

  • 이펙티브 자바 3일 정도 공부함.
  • 자소서 준비등등.

Han

  • 이펙티브 자바 3,4일 공부함.

Henry

  • 내용이 크게 어렵지 않아서, 가볍게 봤다.
  • 핸드폰 바꿨음

David

  • 내용이 쉬운 것도 있었고, 가볍게 했다.
  • 금방 끝낼 수 있을 것 같다. 9시전까지

Items

[아이템 21]

  • apache-common, google-guava 많이 사용되는 라이브러리들.
  • 인터페이스를 구현할 때, 다른 개발자들이 각각 구현체를 만들어보자.
    • 그러면 인터페이스 설계에 있는 결함을 줄일 수 있을 것...?
  • mutex, semaphore에 대해

[아이템 22]

  • ObjectStreamConstants 왜 만들었을까?
    • 실수
    • 설계상 잘못 되긴 했지만, 삭제함으로써 발생하는 문제를 방지하기 위해서 굳이 지우진 않는듯.

[아이템 23]

  • 클래스 설계 시, 객체지향적인 마인드를 다시한번 생각하자

[아이템 24]

  • 각각의 클래스가 어떤 클래스인지 정도만, 알면 될 것 같다.
  • Map.entry interface에 대해
    • 인터페이스 목적이나 사용에 대해 다시 한번 알아봐야할듯.
  • 어느 경우에 정적, 비정적 멤버 클래스를 사용할까?
    • 바깥 인스턴스를 참조하냐 안하냐의 차이
    • Iterator, Adaptor는 바깥 인스턴스를 참조해야지만 쓸모가 있는 클래스.
    • Entry 는 Map 내부에 있지만, Map 정보에 대해 알 필요 없음 --> 그래서 정적 멤버 클래스로 가능
    • 반면 Iterator들은 바깥 인스턴스 정보를 알아야 하니까.. --> 비정적 클래스
  • 정적 클래스의 경우, 새로운 탑클래스로 분리 가능하다 (바깥 클래스를 참조하고 있지 않기 때문에)
  • 비정적 클래스의 경우, 바깥 클래스를 참조하고 있는 경우, 새로운 탑 클래스로 분리하는 게 어렵거나 불가능하다
    • 그러므로 해당 클래스 내부에 존재하도록 만들어야 한다.
  • 비정적 멤버 클래스의 접근제한자의 경우 일단 private하게 만들어보고, 그게 힘들다면 public, proteced로 변경하는 거를 생각해보자
    • 정적 멤버일 경우에만 public 일 경우가 있을듯.

[아이템 25]

  • 컴파일러가 이렇게 동작할 수 있다는 게 재밌다.
  • 자바 컴파일의 가장 기본적 단위가 파일 단위여서...그런듯
Clone this wiki locally