[Java] StringBuilder

고병갑·2025년 2월 18일

java study

목록 보기
3/10

서론 : Java에서의 String

Java에서 String 클래스는 불변성을 가져 변하지 않는 문자열을 자주 사용하는 경우에 좋은 성능을 기대할 수 있다
🖐️하지만 문자열의 변경이 자주 일어나면 효율적인 성능을 기대하기 어렵다

StringBuilder란?

String을 만드는 객체
Java에서 문자열 데이터 변경을 위해 StringBuilder로 변경한 다음 append나 insert등의 기능을 처리할 수 있음

StringBuilder SB = new StringBuilder();
SB.append("ABC"); // 문자열을 더할 때
System.out.println(SB.toString()); // 만들어진 문자열을 출력할 때 StringBuilder의 인스턴스인 toString()사용


String 있는데 StringBuilder 왜 씀?

String으로 문자열을 만들게 되면 변하지 않는 String 객체가 생성이 됨
String text = "abc"; 로 문자열을 더하거나 변경을 할 때
기본 String으로 만든 문자열은 변하지 않기 때문에 새로운 객체를 생성해 해당 문자열을 수정하므로 메모리가 낭비됨
연산이 많아지면 많아질수록 메모리의 낭비가 커지게됨!
→ 이러한 문제 해결을 위해 StringBuilder를 사용
StringBuilder는 변경 가능한 문자열을 만들기 때문에 String 보다 메모리가 낭비가 되지 않음


속도 비교

여러줄을 출력한다는 가정하에
println으로 출력하기 vs BufferedWriter에 저장해서 출력하기 vs StringBuilder 로 출력하기

  1. System.out.println : 속도 가장 느림
String a = "고병갑";
System.out.println(a);

  1. BufferedWriter : System.out.println 보다는 빠름
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

String a = "고병갑";
bw.write(a); // write() 출력할 내용을 담음 엔터가 자동이 아니므로 줄을 띄울땐 "\n"을 넣어줘야함
bw.flush(); // flush() write로 담은 내용을 출력 후 버퍼를 비움
bw.close();

  1. StringBuilder : 가장 빠름
StringBuilder sb = new StringBuilder();
sb.append("고병갑")
System.out.print(sb);
profile
노력 naver 배신🔥

0개의 댓글