본문 바로가기
Java

java #1 [concat, +, StringBuffer, StringBuilder]

by Lee David 2020. 6. 23.
반응형

String과 String 자체를 이어붙일때에는 사실 두개의 String중 하나의 길이가 늘어나는 것이 아니라 새로운 String이 메모리 영역에 생성이 됩니다.

 

이로인해서 String을 가지고 작업할 때 조심해야합니다.

 

퍼포먼스 상에서 가장 빠른건 +와 , StringBuilder입니다. (java 1.5버전 부턴 +와 StringBuilder가 동일)

사실 java 1.5이전의 버전을 사용하시는 분이면 + 사용을 비추하는 이유는 +와 concat이 동일하게 동작하기 때문입니다.

 

사실 String을 재 조합할때에 java는 새로운 인스턴스를 만들어 우리에게 재공합니다. (concat의 경우)

 

그러기에 메모리 소비를 가장 많이 줄이려면 StringBuffer나 StringBuilder를 사용해야 하는데 두개의 차의 점이 있습니다.

StringBuffer는 Thread-Safe하기에 Thread를 사용해야 하는 경우 적합하며 StringBuilder는 StringBuffer보다 빠른 속도를 가지고 있지만 StringBuffer의 Thread-Safe 기능은 가지고 있지 않아 주로 긴 문장이나 String 값을 만들어야 할때 좋은 성능을 낼 수 있습니다.

 

 

반응형

'Java' 카테고리의 다른 글

[자료구조] Priority Queue는 뭔가요?  (0) 2022.08.18
java #4 [Queue, Dequeue]  (0) 2020.07.08
java #3 [ArrayList, LinkedList, SynchronizedList]  (0) 2020.07.06
Java #3 [InputStream]  (0) 2020.06.29
java #2 [HashMap, ConcurrentHashMap]  (0) 2020.06.26