본문 바로가기
IT_Developers/JAVA

JAVA - String VS StringBuffer 의 차이는? / 쉬운 설명

by 고코더 2021. 11. 12.

String vs StringBuilder

 

안녕하세요.

고코더 입니다. 

 

 

오늘은 String , StringBuilder 의 차이를 한번 알아보겠습니다. 실무에서는 대부분 "String"를 많이 사용합니다. 문자열을 조합하거나 이어 붙이는 작업등을 상관없이 사용합니다. 하지만 멀티쓰레드 환경에서는 "StringBuilder"를 사용하여 효율을 극대화 하는 경우가 있습니다. 비슷하지만 다른 이 두개의 클래스를 한번 살펴보겠습니다.

 

String의 한계

 기존 String은 불변성을 가지고 있습니다. 그래서 한번 선언한 후에 다시 변수에 데이터를 입력하면 문자열이 추가 되는 것이 아니라 새롭게 변수를 생성하고 이전에 있던 데이터는 가비지콜렉션이 자동으로 처리해주게 됩니다. 즉 String으로 문자열을 조합하는 일을 자주하면 성능은 하락하고, PM에게 혼나게 됩니다. 

 

String은 이왕이면 변하지 않는 값을 사용할때 사용하는 것이 유리합니다.

 

StringStringBuffer의 성능

 

그렇다면 String의 단점은 어떻게 해야할까요? 바로 "StringBuffer" 입니다. 이는 문자 데이터를 조합할때 유리하도록 만들어진 클래스 입니다. 그래서 문자열을 추가하는 API를 제공합니다. 바로 append() 입니다. 데이터를 이어 붙일때 새롭게 객체를 만드는 것이 아닌 이미 만들어진 메모리에 데이터를 추가합니다. 

 

 

 

 

 

 

댓글