JAVA

StringBuffer 와 String 의 차이점?

min민 2022. 12. 26.

 

이번 포스팅에서는

StringBuffer와 String의 차이점을 알아보려고 합니다!

 

 

 

 

 

 

 

1.StirngBuffer와 String의 차이점

StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append("Hello");
stringBuffer.append(" ");
stringBuffer.append("I am min");
System.out.println(stringBuffer .toString());

// 출력 : Hello I am min

이와같은 예제가 있다고 할 때에

 

위의 2번째 줄 코드를 보면 .append()는 Stirng의 문자열 덧셈과 크게 다른점이 없어 보이는데요..

 

 

하지만 내부적인 메모리 관점에서 보면 String의 문자열 덧셈 보다 StringBuffer가 더 효율적으로 작성되게 됩니다.

 

위의 예시를 보면 StringBuffer 객체를 한번 생성하게 됩니다.

 

 

 

반면에 String의 경우  아래와 같이

String string = new String("Hi");
String min = new string(" ");
String mimi = new string("I am min");
System.out.println(string + min + mimi);

문자열 덧셈 연산이 이루어질 때마다 Stirng 객체가 생성되어야 합니다. 

 

 

 

 

 

 

Stirng의 경우는 자료값 안에 문자열이 한번 생성되면 그 값을 절대 변경할 수 없습니다. 

예를들어 String의 toUpperCase()와 같이 대문자로 변경 해주는 메소드를 보면 문자열이 변경되는 것이 아니라 또 다른

String 객체를 생성하게 됩니다.

 

 

 

반면에 StringBuffer은 그 값을 변경할 수 있습니다. 

하지만 StringBuffer은 Stirng보다 메모리 사용량이 더 크고 속도가 느립니다. 

 

따라서 Stirng과 Stirng Buffer은 상황에 맞도록 알맞게 사용되어야 합니다.

 

 

 

 

 

결론: 

문자열의 추가 또는 변경 작업이 많을 경우에는 StringBuffer을 사용해서 효율적으로 작성하면 좋다.

 

문자열의 추가 또는 변경 작업이 적을 경우에는 Stirng을 사용해서 메모리 사용량을 낮추고 속도를 높이는 것이 좋다.

 

 

 

 

 

 

댓글