Double.MAX_VALUE는 좀 특이하군요 @_@

System.out.println(Double.compare(Double.MAX_VALUE, Double.MAX_VALUE – 1.0));

이렇게 하면 무슨 값이 출력 될까요? 앞에 있는 인자가 더 크니까 양수가 나와야 합니다.
그러나 해보시면 아시겠지만, 0이 나옵니다.

난 너무 커서 1 같이 작은 수는 빼봤자 그게 그거야…

라는 건가요.. 이건 좀 @_@
왜이러는 걸까요?
정확하게 비교하려면 어떻게 해야 할까요?

한가지 찾은 방법은 longValue() 이용해서 long으로 바꾼 다음에 계산하는 겁니다.
그러나.. 불편하자나요~

자바의 숨겨진 기능들

대엽님 블로그에서 잼난 글을 발견하고 링크를 따라가보니, 정말 놀라운 것들로 가득찬 페이지를 발견했습니다. 스크롤을 내려가면서 아는 것도 가끔씩 등장은 하는데, 윗 부분은 정말 신기한 것들로 가득합니다. 캬~ 저런게 있었구나.. 싶을 정도로요.

저 포럼은 예전에 영회형 블로그에 올라왔던, Stack과 Heap에 대한 설명에 대해서도 굉장히 잘 설명한 댓글이 달렸던것 같은데, 수준이 상당히 높은 포럼인듯 합니다. 멋지네요.

그 중에 몇 개 살펴봅니다.

1. 더블 괄호
http://www.c2.com/cgi/wiki?DoubleBraceInitialization

더블 괄호 사용해서 컬렉션 객체 만드는 방법인데, 첨 보는 방법입니다. 하지만 개인적으론 저것 보단 자주 사용하고 있는  Arrays.asList()가 명시적이어서 더 좋네요.

2. 상위 타입 제한

public class Baz<T extends Foo & Bar> {}

이런식으로 &를 써서 여러 타입으로 제한할 수도 있었군요;

3. 동적 프록시

http://java.sun.com/j2se/1.3/docs/guide/reflection/proxy.html

이건 좀 공부해야겠습니다.

4. enum

http://java.sun.com/docs/books/jls/third_edition/html/classes.html#8.9

이넘. 자세히 보진 않았지만, 역시 잘 알아두는게 좋겠죠.

5. concurrent

http://java.sun.com/javase/6/docs/api/java/util/concurrent/package-summary.html

역시나. 잘 모르는 부분. 기초 공부가 넘 게을렀네..

윈도우 시간과 자바에 찍히는 시간이 안맞을 때

-Duser.timezone=Asia/Seoul

 Timezone.getDefault()를 호출하여 자바 창에 찍어보면 기준시간대가 Asia/Seoul이 아닐 것입니다. 이걸 프로그램 내부에서 Timezone 객체를 사용하여 세팅할 수도 있지만, 위의 인자를 자바 컨테이너 실행시에 옵션으로 줄 수도 있습니다. 웹 애플인 경우에는 후자로, 간단한 독립적인 애플일 경우에는 전자로…