Java

StringBuilder & StringBuffer

hongdangmoo 2022. 3. 1. 00:45

StringBuilder & StringBuffer

-> String은 객체가 한 번 생성되면 문자열 내부를 수정하지 못한다. 예를 들어 String a = "hello", String b = "World"일 경우 String c = a + b; 연산을 실행하면 새로운 객체를 만들어야 한다. 연산의 수가 많아질 수 록 만들어야 하는 객체도 많아지기 때문에 효율이 떨어진다. StringBuilder와 StringBuffer는 위와 같은 상황에서 새로운 객체를 생성하는 것이 아니라 이미 저장되어있는 기존 객체에 더하기 때문에 효율이 올라간다. 즉 StringBuilder와 StringBuffer는 String에 비해 객체의 공간을 유연하게 사용한다.

 

-> StringBuilder

public class Example {

	public static void main(String[] args)throws Exception{
		
		String str = "안녕하세요";
		StringBuilder sb = new StringBuilder(str);
		String a = " 안녕히가세요";
		
		System.out.println(sb.append(a));
	}
 
}

-> 결과

☞ StringBuilder자리에 StringBuffer를 사용해도 같은 결과가 나온다.

 

StringBuilder와 StringBuffer의 차이점

-> StringBuffer는 멀티 스레드 환경에서 사용되고, StringBuilder는 단일 스레드 환경에서 사용된다.