티스토리 뷰
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 |
공지사항
최근에 올라온 글