[출처 : PMD로 배우는 올바른 자바 코딩 방법]

 

1 float, double 사용시 조심

 - 4.7 + 0.4 는 5.1이 아님

   근사치 값을 가지고 계산 하므로 BigDecimal을 사용해야 함

2 Boolean 변수 사용시

 - new Boolean(true) 또는 Boolean.valueOf(true) 가 아니라.

   Boolean.TRUE, Boolean.FALSE 사용

3 BigInteger 사용시 주의점

 - 0, 1, 10의 값은 상수로 정의 되어 있으므로

   BigInteger.ONE, BigInteger.ZERO 등을 사용

4 파일 skip 메서드는 원하는 만큼 건너뛰어 주지 않는다.

 - 확인하는 코드가 필요

   long skipSize = 1024;

   long skipped;

   while(skipSize != 0) {

       skipped = is.skip(skipSize);

if(skipped == 0) {

throw new EOFException():

}

skipSize -= skipped;

  }

5 finally 절에 return 하지 말것.

  - catch 에서 throw 할 경우

6 괄호 스타일

 - 1TBS

    코드가 한줄이라도 반드시 괄호를 해라. if, for, while 문 전부 동일

    if(condition) {

 xxxx;

    } else {

       xxxxx;

    }

7 StringBuffer, StringBuilder 사용시

 - 절대 안에서 + 를 사용하지 말것.

 - 생성자를 충분히 전체 길이를 예상하여 초기화 하여야 함

 - buffer.append("a).append("b").append("c"); 와 같이 체인 형태를 사용하지 말것

 - 멤버 변수로 사용하지 않음

8 대소문자를 포함한 문자열 비교법

 - toUpperCase/toLowerCase의 경우 내부에서 임시 char 배열과 같은 인스턴스를 생성한다.

   equalsIgnoreCase를 사용, String 기본 메서드로서 내부에서 toLowerCase로 변경해서 비교하지만 약간 빠르다고 함

9 싱글톤 패턴( 디자인 패턴 책에서 참조)

 - 처음부터 생성을 하던지... 아니면 volatile 키워드를 사용해서 DCL(Double-Checking Locking)을 사용.

 private volatile static Singleton uniqueInstance ;

 private Singleton() {}

 public static Singleton getInstance() {

     if(uniqueInstance == null) {

         synchronize(Singleton.class) {

       if(uniqueInstance == null) {

           uniqueInstance = new SingleTon();

       }

         }

     }

     return uniqueInstance;

 }

10 인터페이스

 - 내부의 모든 구성 요소에는 public 키워드가 묵시적으로 적용되어 외부로 공개되 있으므로

   구성 요소에 강제로 private나 protected 키워드로 접근을 제한하는 것은 불가능

   void printValue();

11 Thread

 - run 메소드 보다 start를 이용해라. run 의 경우 단순히 순차적인 호출을 함. start 의 경우

   스레드 작업을 위한 새로운 호출 스택을 생성하고 해당 스택에서 run 메서드를 호출

   Thread.run(Runnable 인터페이스를 구한현 run 메서드를 실행할때)

   Runnable 인터페이스 구현체 안에서 sleep 이 있어도 순차적으로 실행이 됨.

   반드시 start를 사용할것

 

 

 

 

'java' 카테고리의 다른 글

java 파일 복사, 삭제, 목록 조회  (0) 2014.11.04
JWT(JSON Web Token)  (0) 2014.10.17
비밀번호 암호화 SHA256, Salt  (0) 2014.08.07
보안 인증 관련  (0) 2013.03.19
암호화 솔트 salt  (0) 2013.03.19
Posted by gt1000

블로그 이미지
gt1000

태그목록

공지사항

어제
오늘

달력

 « |  » 2024.3
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함