-
13일 차 StringBuffer, StringBuilder삼성SDS_멀티캠퍼스/Java 2015. 9. 23. 10:31반응형
1. 메모리 낭비를 줄일 수 있다.
2. 문자열 결합시 사용하면 유용
------------------------------------------
문자열 String을 결합할 때 그냥 해버리면 엄청나게 많은 메모리낭비가 일어난다.
왜냐면 A0~A8까지 더할때
A0A1...A8 이 결과를 뽑기위해 낭비되는 메모리가
A0
A0A1
A0A1A2
A0A1A2A3
A0A1A2A3A4
....
즉 A0~A8결과값이 나올때까지 사용되는 메모리양이 너무크기 때문인데
그냥 String으로만 하면
import java.util.Scanner;
public class Test3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 사용자가 입력한 숫자까지 A0A1A2....An으로 출력
// 하되 하나의 문자열이어야 함
String str = "";
System.out.println("숫자를 입력");
int num;
Scanner scan = new Scanner(System.in);
num = scan.nextInt();
for (int i = 0; i < num; i++) {
str += "A" + i;
}
System.out.print(str);
}
}
이렇게 하면 메모리낭비가 일어난다.
그래서 StringBuffer, StirngBuilder로 바꾸면
public class Test4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
String a = "A" + "B" + "C" + "D";
StringBuffer sb = new StringBuffer();
StringBuilder db = new StringBuilder();
sb.append("A");
sb.append("B");
sb.append("C");
sb.append("D");
db.append("A");
db.append("B");
db.append("C");
db.append("D");
String b = sb.toString();
System.out.println(b);
String d = db.toString();
System.out.println(d);
}
}
반응형'삼성SDS_멀티캠퍼스 > Java' 카테고리의 다른 글
13일 차 배열의 정렬, 해당숫자가 몇번째인지 찾기, 필 메소드 (0) 2015.09.23 13일 차 문자열 <->기초자료형 (0) 2015.09.23 13일 차 currentTimeMillis()로 걸린 시간을 알기 (0) 2015.09.23 13일 차 패키지에 관해서 (0) 2015.09.23 13일 차 패키지안에 패키지만들기 (0) 2015.09.23