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는 단일 스레드 환경에서 사용된다.