'Java/java.lang'에 해당되는 글 2건

  1. 2008.10.08 [Class] StringBuilder, StringBuffer
  2. 2008.07.06 [Class]Boolean
2008.10.08 19:30
StringBuffer 의 JavaDoc을 보면, 스트링을 만들기 위한 클래스를 왜 두 개 만들어 놓았는지 알 수 있습니다.

StringBuffer와 StringBuilder의 차이점은 내부 클래스가 Thread 안전한가의 여부입니다.
StringBuffer는 Thread-안전하며, StringBuilder는 Thread 안전하지 않습니다.
하지만 StringBuilder는 동기화를 수행하지 않기 때문에 더 빠릅니다.

무심코 단일 Thread 내에서도 StringBuffer를 사용했었는데,
단일 쓰레드 내에서는 StringBuilder를 사용해야겠네요.

소스를 열어보면, StringBuffer 에는 synchronized 가 붙어있는  것을 볼 수 있습니다.

Posted by 나야

댓글을 달아 주세요

2008.07.06 15:23
사용자 삽입 이미지
Arthur : van Hoff
Sun의 자바 개발 팀. 검색해보면 이 사람에 관한 글을 많이 볼 수 있음.
왼쪽에 있는 사람이 van Hoff.
딱 봐도 고수같다.







primivite type boolean 의 Wrapper Class.
Serializable 인터페이스와 Comparable<Boolean> 을 구현

Comparable<Boolean> Interface Implementation
사용자 삽입 이미지

이 코드가 좀 독특한데, Comparable Interface의 JavaDoc을 보면, 두 클래스의 natural order가 같을 경우 0을, less than 일 경우 음수를, greater than 일 경우 양수를 반환한다. 이 method는 Collections.sort를 이용하여 List 또는 배열을 정렬할 수 있다.
ArrayList<Integer>를 이용해 간단히 테스트를 해보면, Collensions.sort는 less instance 부터 정렬하는 것을 알 수 있다. 그리고 ArrayList<Boolean> 으로 테스트해보면, false --> true로 정렬이 된다. 위의  compareTo method의 구현에서 보듯이 삼항연산자는 참 편리한 것같다. 이해도 잘된다.

또 독특한게 있는데, hashCode()이다.
사용자 삽입 이미지
true의 hashcode 는 1231을, false는 1237을 반환한다. 응?
http://community.livejournal.com/ru_programming/964630.html에 러시아 말로 다음과 같이 써있다.(러시아->영어로 구글번역이용)
아마도 이런 이유가 아닐까요.
true : 1+2+3+1 = 7 는 행운의 숫자
false : 1+2+3+7 = 13 는 불길한 숫자
밑에 댓글을 읽어보니, 그냥 농담인 것 같다. 그냥 van hoff에게 물어보면 좋을텐데.

쭉 둘러보니, 다른 특이한 점은 없다.















Posted by 나야

댓글을 달아 주세요