01. Constructor 대신 Static Factory Method를 고려하라 장점 이름을 가질 수 있다. 간다하고 명확하게 사용할 수 있다. 인스턴스를 매번 생성할 필요는 없다. Flyweight pattern = Collection Object Singleton pattern = Single Object 단점 ...
유효 Scope 밖으로 넘어가면 자동으로 GC의 대상이 된다.
== 를 통해 input이 자기 자신의 참조인지instanceof를 통해 input의 타입이 명확한지2를 통해 검사한 객체를 올바른 타입으로 형변환핵심 필드등ㄹ이 모두 일치하는 지not null if x is not null, then x.equals(null) = f
Public 으로 열 경우 Tread safe하지 못하다꼭 필요한 상수라면 예외적으로 public static final로 공개할 수 있다.주의사항 public static final Thing\[] values = {...} 는 수정이 그낭하다
클래스 내부에서 사용하는 상수는 내부 구현에 해당된다.오히려 사용자에게 혼란을 줄 수 있다.차라리 클래스에 static final로 추가하는 것이 더 낫다.Nested 되어 있는 member class가 독립적으로 존재할 수 없으며 바깥 instance 없이는 생성할
그렇지 않다면 런타임 시 예외가 발생할 수 있다.List< Objct > 는 명확하게 내가 Objct라는 타입을 제시한 것임하단과 같이 merge해 버린다면, 다른 타입이 들어왔을 때 문제가 생김예외적인 케이스를 제외하면 명확히 타입을 명시하도록 하자.Warnin
Method의 parameter 타입을, interface의 Type으로 한정한다.genric 타입과 같이 형변환 해야하는 method보다 generic method가 더 안전하고, 심지어 사용허기도 쉽다. (형변환 해야하는 메서드는 generic으로 만들자)Mehto
Enum에서 ordinal()이라는 enum의 번호를 변환해 주는 메서드가 있다.하지만 경우에 따라 넘버링을 bit로 하는 경우도 있고 코드를 잘못 건드리면 겉잡기 힘들다.그러니 인스턴트 필드에 값을 저장해서 사용하는 것이 좋다.jpa의 custom method의 경우
람다를 사용할 수 있는 자바 버전이면, 타입 추론 또한 가능하기 때문에 매개변수 타입을 가능하면 생략한다.익명 함수는 이제 (함수형 인터페이스가 아닌) 타입의 인스턴스를 만들 때만 사용return (메서드 빠져나가기), break & continue (반복문 종료 or
01. 매개변수가 유효한지 검사하라 매개변수가 유요한지 검사하는 기준 어디서 호출되는지가 중요. 검사 규칙도 TPO가 중요 공개된 API일 수록 parameter 검사 기준은 엄격하게 이루어져야 함 내부에서 소화될 코드라면 공개된 API만큼은 아닐 지라도,
컴파일타임 타입 검사가 주는 이점을 누릴 수 없음코드가 지저분해지고 장황해지며 성능이 떨어짐
의미없는 예외 처리는 하지 말자.검사 예외를 던지는 대신 상태 검사 메서드를 활용하라업로드중..
특정 Task가 완료되기를 기다린다.Task 모음 중 아무 것 하나(invokeAny method) 혹은 모든 태스크 (invoke All method)가 완료되기를 기다린다.Executor service가 종료하기를 기다린다 (awaitTermination metho
JSON, 때떄로 필요할 때 Protocol Buff 기반을 사용하고, 직렬화는 그만 보내주도록 하자. 새로운 시스템에서 직렬화를 사용할 이유가 없다.일단 구현하고 나면 돌이킬 수가 없다 (이미 해당 스펙을 구현하고 있다로 알기 떄문)버그와 보안 구멍이 생길 위험이 높