1. String 논리연산시 == 를 쓰지말고 equals() 를 사용하라
java의 특징중 하나는 if 연산시 String type의 경우 data 연산이 아니라 type 연산을 하게 됩니다.
String a = "1";
String b= "2";
if(a == b) // true. String == String
if(a.equals(b)) // false 1 == 2
2. if문 연산 시 존재하지 않을수도 있는 데이터는 먼저 연산하지 말라
String a =null;
if(a.equals("")) // 1번
와
if("".equals(a)) // 2번
의 경우 같은 if 연산이지만 2번이 안전합니다.
1번의 경우 nullpoint Exception이 발생하게 됩니다.
2번을 쓰되 2번 조건에 if(a != null || "".equals(a)) 를 쓰는게 좋겠군요.
if(a != null || "".equals(a)) 와 ("".equals(a) || a != null) 의 논리연산의 경우 비슷해 보이나 첫번째 방법을 쓰는게 좋습니다.
3. 반복문 에서의 변수선언은 하지마라
학생때 배웠던 책 중 일부분의 경우
for(i==0; i<=10; i++) {
int a;
a += i;
System.out.println(a);
}
이런식으로 사용되는 예제가 간혹 있었습니다.
이렇게 생성된 a 변수는 for문 안에서만 사용 가능할 뿐더러
선언될 때 마다 메모리 주소를 새로 잡기 때문에 성능적으로도 좋지 않습니다.
(어떻게 하느냐)
int a = 0;
for(i==0; i<=10; i++) {
a += i;
System.out.println(a);
}
이런 식으로 사용하는게 좋습니다.
웹 개발자 한정) System.out.println은 쓰지마라.
System.out.println() 자체는 WAS가 직접적으로 처리하게 되며 성능에 직접적인 영향이 갑니다.
실무에서도 이력 추적한다고 저런걸 잔뜩 써 놓는 경우가 있습니다.
우리에게는 log 라는 축복받은 모듈이 있습니다. 씁시다.
log4j 설정하기 어렵지 않습니다. 기타 log 프로그램도 그리 어렵지 않습니다.
번외)
나 자신은 믿되 내 손가락은 믿지마라 (부제: 난 널 믿어. 근데 니 손가락은 못믿어. 소스까라.)
번외2)
안 된다고 붙잡지 말고 그날은 퇴근해라. 다음날 새로운 내가 이 문제를 풀어줄것이다.