티스토리 뷰

728x90
반응형

String


new 에 의한 생성이 아닐 때 초기 컴파일러 분석단계에서 literal 처리에 의해 최적화가 될 수 있기 때문에 오히려 빠른 결과를 보여줄 때가 있다


StringBuffer, StringBuilder


초기에 생성할 때 Buffer Size를 주도록 구성되며

이에 의한 생성, 확장 오버로드가 걸리기 때문에 의외로 Buffer Size를 잘못 지정할 경우 성능이 떨어질 가능성도 있다


단순 성능만 보면, 연산이 많은 경우(정확한것은 아님)


String < StringBuffer <StringBuilder


런타임의 경우 + 연산자의 연산속도가 현저하게 느려진다


StringBuilder, StringBuffer 의 차이


동기화 지원여부


두 클래스가 제공하는 메소드는 같다

그러나 메소드를 보면 StringBuffer는 각 메소드 별로

synchronized keyword가 존재


즉, 멀티 쓰레드 상태에서 동기화를 지원한다는 것이 다르다



사용기준

String // 객체는 불변이기 때문에 변하지 않는 문자열의 경우 사용

StringBuilder // 비동기 방식이기 때문에 SingleThread 환경하의 변화되는 문자열의 경우 사용

StringBuffer // 동기방식

반응형

'프로그래밍 > Java' 카테고리의 다른 글

[Java] Type Safety : unchecked cast  (0) 2019.01.29
[Java] :: ( 더블콜론 )  (0) 2018.12.12
[Java] Iterator  (0) 2018.12.12
[Java] parseInt() 와 intValue() 의 차이  (0) 2017.11.01
[Java] 문자열 자르기, replace() 메소드  (0) 2017.10.25
공지사항
최근에 올라온 글