반응형
자바에서 String에 값을 붙여주는 경우에는
String.concat("값", "값")
String + String
StringBuilder.append("값")
이렇게 3 방법이 대표적인데
바로 결론부터 가자면
StringBuilder가 가장 빠르고
concat이 가장 느리다
먼저 가장 느린 concat의 경우에는
메소드 호출시마다
String 객체를 새로 만들어서
합친 뒤 반환하기 때문에
메모리를 가장 많이 소모해서 속도가 느리고
+ 의 경우에는
JDK 5 이전에는 concat 방식과 동일했다가
JDK 9 부터는 StringBuilder를 사용하도록 바뀌었는데
StringBuilder에서
makeConcatWithConstants 메소드를 호출하여
내장된 6가지 전략 중에
컴파일러가 가장 빠른 방법으로 문자열을 붙여준다
마지막으로 가장 빠른 StringBuilder의 경우에는
StringBuilder에 신규 값을 붙여서
바로 return하기 때문에 가장 속도가 빠르지만
+ 와 비교해서
몇만~몇십만개의 문자열을 붙이지 않는 이상에야
성능 차이는 체감하기 힘든 수준이기 때문에
대부분의 경우에는 concat을 지양하고
+를 사용하면 충분하다
반응형
'Language > Java' 카테고리의 다른 글
Querydsl qEntity 안생기는 경우 해결방법 (0) | 2022.08.07 |
---|---|
자바 LocalDateTime 날짜 Format 적용방법 (0) | 2022.08.07 |
자바 Gson JsonObject에 배열 넣는방법 (0) | 2022.07.05 |
자바 , 들어간 String 콤마 기준으로 배열로 만드는 방법 (0) | 2022.07.04 |
자바 stream mapToLong Long[]으로 받는 방법 (0) | 2022.06.21 |
댓글