Java

StringBuilder(), StringBuffer()

에어팟맥스 2022. 6. 21. 22:24

⊙ StringBuilder(), StringBuffer() 를 사용하는 이유

 

String 클래스를 만들고 그 값을 계속해서 추가해야 하는 경우

		String name = "일"; // 메모리상에 name 1개 소모
		
		name += ", 이"; // 메모리상에 name 1개 소모
		name += ", 삼"; // 메모리상에 name 1개 소모
		name += ", 사"; // 메모리상에 name 1개 소모
		name += ", 오"; // 메모리상에 name 1개 소모
		name += ", 육"; // 메모리상에 name 1개 소모
		name += ", 칠"; // 메모리상에 name 1개 소모
		name += ", 팔"; // 메모리상에 name 1개 소모
		name += ", 구"; // 메모리상에 name 1개 소모

이런 방식으로 값을 누적시킨다면 누적된 메모리상의 name 은 9개가 소모된다고 한다.

이때 StringBuilder() 또는 StringBuffer() 를 사용한다면 이 문제를 해결할 수 있다.

 

StringBuilder()와 StringBuffer()는 동일한 기능을 수행하지만 약간의 차이가 있다.

 

StringBuilder() 는 단일스레드에서만 사용되어지므로 주로 Web 에서 많이 쓰이고, 

                             StringBuffer() 보다 상대적으로 더 가볍다는 특징이 있다.

 

StringBuffer() 는  단일스레드 및 멀티스레드를 지원하며 주로 게임개발에 사용되며,

                            StringBuilder() 보다 더 무겁다.

 

사용방법은 아래와 같다.

StringBuilder sb = new StringBuilder();
//	또는 StringBuffer sb = new StringBuffer(); 

	sb.append("일");
    sb.append(", 이");
    sb.append(", 삼");
    sb.append(", 사");
    sb.append(", 오");
    sb.append(", 육");
    sb.append(", 칠");
    sb.append(", 팔");
    sb.append(", 구");

    System.out.println(sb.toString());

 

 

StringBuilder() 클래스를 선언하고 .append("추가할내용")를 통해 값을 추가한다.