-
Notifications
You must be signed in to change notification settings - Fork 38
20201116
David Chung edited this page Nov 16, 2020
·
3 revisions
- 이펙티브 자바 3일 정도 공부함.
- 자소서 준비등등.
- 이펙티브 자바 3,4일 공부함.
- 내용이 크게 어렵지 않아서, 가볍게 봤다.
- 핸드폰 바꿨음
- 내용이 쉬운 것도 있었고, 가볍게 했다.
- 금방 끝낼 수 있을 것 같다. 9시전까지
- apache-common, google-guava 많이 사용되는 라이브러리들.
- 인터페이스를 구현할 때, 다른 개발자들이 각각 구현체를 만들어보자.
- 그러면 인터페이스 설계에 있는 결함을 줄일 수 있을 것...?
- mutex, semaphore에 대해
- ObjectStreamConstants 왜 만들었을까?
- 실수
- 설계상 잘못 되긴 했지만, 삭제함으로써 발생하는 문제를 방지하기 위해서 굳이 지우진 않는듯.
- 클래스 설계 시, 객체지향적인 마인드를 다시한번 생각하자
- 각각의 클래스가 어떤 클래스인지 정도만, 알면 될 것 같다.
- Map.entry interface에 대해
- 인터페이스 목적이나 사용에 대해 다시 한번 알아봐야할듯.
- 어느 경우에 정적, 비정적 멤버 클래스를 사용할까?
- 바깥 인스턴스를 참조하냐 안하냐의 차이
- Iterator, Adaptor는 바깥 인스턴스를 참조해야지만 쓸모가 있는 클래스.
- Entry 는 Map 내부에 있지만, Map 정보에 대해 알 필요 없음 --> 그래서 정적 멤버 클래스로 가능
- 반면 Iterator들은 바깥 인스턴스 정보를 알아야 하니까.. --> 비정적 클래스
- 정적 클래스의 경우, 새로운 탑클래스로 분리 가능하다 (바깥 클래스를 참조하고 있지 않기 때문에)
- 비정적 클래스의 경우, 바깥 클래스를 참조하고 있는 경우, 새로운 탑 클래스로 분리하는 게 어렵거나 불가능하다
- 그러므로 해당 클래스 내부에 존재하도록 만들어야 한다.
- 비정적 멤버 클래스의 접근제한자의 경우 일단 private하게 만들어보고, 그게 힘들다면 public, proteced로 변경하는 거를 생각해보자
- 정적 멤버일 경우에만 public 일 경우가 있을듯.
- 컴파일러가 이렇게 동작할 수 있다는 게 재밌다.
- 자바 컴파일의 가장 기본적 단위가 파일 단위여서...그런듯