Java

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

Lee David 2020. 6. 23. 10:26
반응형

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 값을 만들어야 할때 좋은 성능을 낼 수 있습니다.

 

 

반응형