1. String

1). 기본형 타입으로 문자열을 선언하면 Literal Pool 문자열이 하나하나 나눠져 저장되어 다시 문자를 사용한다면 Literal Pool 저장되었던 문자를 다시 사용한다.

    》ex) String a = "abc"; -> abc Literal Pool 저장

      2). 참조형 타입을 문자열을 선언하면 Heap영역에 문자열이 저장된다.

    》 ex) String a = new String("abc); -> a Stack영역에 있고 "abc" Heap 저장되며 "abc" 저장된 Heap영역의 주소값이 변수a 저장된다.

3). 비교

    》기본형은 == 비교

    》참조형은 equals 비교

    》equalsIgnoreCase 메소드는 영문자를 대소문자 구분없이 비교

 

 

2. StringBuffer StringBuilder의 차이점

StringBuffer 멀티스레드 환경에서 안전

StringBuilder 멀티스레드 환경에서 불안전 하므로 스레드 환경에 따라 사용여부를 구분한다.

두 클래스는 거의 비슷하지만 단지 차이점이 있다면 클래스안에 StringBuffer synchronized 라는 구문이 있고(멀티스레드 환경에서 안전) StringBuilder 에는 없다

 그러므로 StringBuilder 가 조금 아주 미약하게나마 성능이 좋다 하는데 안정성을 위해 StringBuffer 를 사용하는 걸 추천한다

 

3. StringBuffer,StringBuilder String의 차이점

1). StringBuffer StringBuilder 문자열 수정이 메모리 효율적으로 좋다.

2). String 문자열 수정 메모리 효율이 비교적 좋지 않다

 

4. String, StringBuffer StringBuilder의 성능

StringStringBuffer보다는 367, StringBuilder보다는 512배 빠르고...

메모리사용량은 StringStringBuffer, StringBuilder보다 3,390배 더 사용한다네요 ^^

결론적으로 String보다는 StringBuilder 사용이 좋을것같네요 ^^

 

 

출처 : http://wonsstory.tistory.com/36

'Java > Working with Text' 카테고리의 다른 글

NumberFormat, ChoiceFormat, DateFormat, SimpleDateFormat  (0) 2013.11.01
java.util.Scanner  (0) 2013.10.31
Posted by Steven J.S Min
,