Language/Java(42)
-
이펙티브 자바) 규칙 59, 60, 61, 62, 63, 64, 65
규칙 59. Avoid unnecessary use of checked exceptions checked exceptions Exception can recover IOException, IllegalArgumentExceptions uncheked exceptions RuntimeException can not recover transactionNullPointerException 핵심요약 : checked exceptions 은 너무 남발하면 프로그램을 복잡하게 만든다.그러므로 훌륭한 프로그래머가 되기위해서는 생각해보아야 한다. 무엇을?1) 예외적인 상황을 막을수 있는가? 2) 예외 상황에 대한 조치를 취할 수 있는가?막을수 없고, 조치를 취할 수 없다면(can't recover) runtimeExc..
2015.07.30 -
규칙41) 오버로딩을할 때는 주의하라!
제네릭 메카니즘 “Erasure" Type Erasure Generics were introduced to the Java language to provide tighter type checks at compile time and to support generic programming. To implement generics, the Java compiler applies type erasure to: Replace all type parameters in generic types with their bounds or Object if the type parameters are unbounded. The produced bytecode, therefore, contains only ordinary cla..
2015.07.21 -
(java) ltrim 구현
private final static Pattern LTRIM = Pattern.compile("^\\s+"); tip. \\s+$ private String ltrim(String s) { return LTRIM.matcher(s).replaceAll(""); } ^ : 시작. \s : 공백. + : 하나 이상. 매칭되는것 없애준다. 끝.
2015.06.30 -
이펙티브자바 규칙 19) 2015년 6월 21일- 일요일 스터디 카페 방문
1. 이펙티브 자바 읽기(범위 : 규칙19,20,21) 인터페이스는 클라이언트 입장에서 보면 “알림이?(명세) 역할"을 한다. 즉, class로 구현할 것을 인터페이스는 미리 말해준다. 인터페이스 사용법 중에 실패한 것은 메소드도 없고 static final field만 존재하는 소위 "constant interface” 라 불린다. // Constant interface antipattern - do not use! public interface PhysicalConstants { // Avogadro's number (1/mol) static final double AVOGADROS_NUMBER = 6.02214199e23; // Boltzmann constant (J/K) static final d..
2015.06.21 -
2015년 06월 17일 이펙티브자바 스터디.
스터디 범위 : 이펙티브 자바 규칙17. 참여인원 : 총 5명 - 테리팍, 호이루팍, 빅터신, 지니유, 아론킴상속을 위한 설계와 문서를 갖추거나 그럴수 없다면 상속을 하지말라!?? 재정의 기능 메소드를 내부적으로 어떻게 사용하는지(self-use) 반드시 문서에 남기라는 것. - 더 쉽게 풀어서 말하면 메소드 내부동작 원리에 관한 주석을 남기라는 뜻. 토론) java doc 이야기 테리팍 : java doc을 남기는 것은 좋은 것 같다. 이유 : 이력관리도할 수있고, 더 나아가 CI서버에서도 사용할 수 있다. 또한 개발 전후에 유용할 것 같다. 호이루팍 외 3명 : 이력은 커밋로그나 히스토리를 통해서 보면 되지 않는가? java doc은 관리가 안된다. 빅터신 : 주석(java doc)은 필요한 것만 즉..
2015.06.17 -
Favor composition over inheritance
참조 site : http://uet.vnu.edu.vn/~chauttm/e-books/java/Effective.Java.2nd.Edition.May.2008.3000th.Release.pdf 여기에서 말하는 상속의 범위 - extends!! interface implements는 아니다. 상속은 코드 재사용에 대해서 파워풀하지만 항상 좋은것만은 아니다. : 상속을 적절히 잘 사용하지 못하면 소프트웨어는 깨지기 쉽다. 잘 사용하려면? 같은 프로그래머가 같은 패키지 안에서 사용하면 안전하다(당연한거 아닌가..-_-;;) 여러사람이 사용하더라도 상속을 고려해 설계되고 그에 맞는 문서를 갖춘 클래스에 사용하는 것은 안전! 메서드 호출과 달리, 계승은 캡슐화 원칙을 위반한다. : 하위 클래스는 상위클래스의 구..
2015.06.16