- 마스터 클래스
- DreamCoding Git 마스터 과정 merge, rebase onto, stash
- 코드 리뷰 PR ChangeRequest 반영
- github을 기반으로한 온라인 코드 리뷰 방법
- 생활코딩
- java.util.Collection 패키지에 있는 클래스들을 활용할 때는 구현체 클래스로 직접 타입을 지정해주기보단 상위 인터페이스에 해당하는 타입을 지정해주는 것이 좋다는 피드백을 받았다.
- 상위 인터페이스를 사용하는 것이 더 좋은 이유
→ 상위 인터페이스인 List로 타입을 지정할 경우, 프로그래밍 중간에 ArrayList에서 LinkedList로 바꾸고 싶을 때 다른 코드의 수정 없이List list = new ArrayList();
를List list = new LinkedList();
로 변경해주기만 하면 된다.- Code Against Interfaces, Not Implementations
- JAVA 업캐스팅
- Kyu가 필드의 초기화와 생성자의 초기화 중에 어떤 것이 먼저 일어나는지 물어보셔서 공부해보았다.
- Are fields initialized before constructor code is run in Java?
- 자바의 정석 기초편 Chapter 6(39) 멤버변수의 초기화
- 클래스 변수 초기화 → 인스턴스 변수 초기화
- 자동 초기화 → 명시적 초기화 → 초기화 블럭, 생성자
- 실행 결과
- 코드
class X { Y b = new Y(); X() { System.out.print("[X 생성자 내부] "); } } class Y { Y() { System.out.print("[Y() 생성자 내부] "); } } class Z extends X { Y y = new Y(); Z() { System.out.print("[Z 생성자 내부]"); } public static void main(String[] args) { new X(); System.out.println("\n-----------------------"); new Z(); } }
- 깃과 난투중인데 나름 즐겁다.
- 코드 리뷰 코멘트를 반영해 리팩토링 + 리뷰 외에 질문을 답변해주는 과정에서 많이 배웠다.
- Git으로 이것저것 시도해보다가 미션과 Git 외에 다른 공부를 별로 못했다.