오늘 코딩을 하다가 놀라운 사실을 발견했다.
아래와 같은 코드를 디버깅용으로 만들어 넣고 테스트해 보았다.
System.out.println("ignore:"+ignore+",characterencoding:"+request.getCharacterEncoding());
그런데, 분명히 콘솔에 찍혀야 되는데 안 찍히길래 컴파일이 제대로 된 건가 확인하기 위해 디컴파일러로 소스를 다시 보니 아래와 같은 코드가 보이는 것이다.
System.out.println((new StringBuilder("ignore:")).append(ignore).append(",characterencoding:").append(request.getCharacterEncoding()).toString());
흠, String concatenation 때문에 하도 문제가 생기니 JDK 1.5부턴 컴파일할 때 아예 이렇게 바이트코드를 만드는 모양이군...
요 몇달동안 String concatenation해야 할 게 많아서 그때마다 StringBuffer에 append하느라고 눈 빠질 뻔 했는데, 이게 언제 바뀐 거야.
바꾸면 나한테 전화라도 미리 해 줬어야 되는 거 아닌감? ㅋㅋ
댓글 없음:
댓글 쓰기