2014. 9. 16. 01:31 java
PMD로 배우는 올바른 자바 코딩 방법
[출처 : 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 |