반응형
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 |