⊙ 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("추가할내용")를 통해 값을 추가한다.
'Java' 카테고리의 다른 글
객체지향 프로그래밍(Object Oriented Programming) (0) | 2022.06.21 |
---|---|
Date, Calendar 를 사용하여 날짜 나타내기 (0) | 2022.06.21 |
String - String.join(), replaceAll(), replaceFirst() (0) | 2022.06.19 |
String - indexOf(), lastindexOf(), split() (0) | 2022.06.19 |
String - charAt(), toCharArray(), substring() (0) | 2022.06.19 |