보통 자바에서 출력문을 생각하면 당연히 System.out.println을 생각하고 사용할 것이다.
그런데 만일 문자열출력을 100번할일이 있다고 생각을 해보자
시스템에서 System.out.println을 100번 호출하도록 할것인가?
이런 많은 호출을 자제하고자 나온 방법이 StringBuilder 출력 방식이다.
public class Main{
public static void main(String[] args)
{
for (int i = 0; i < 100; i++)
{
System.out.println("Hello world");
}
}
}
>>Hello world 백번 출력
위 방식처럼 작성하면 100번의 출력문을 호출하게된다.
이를 해결하는 StringBuilder 사용법을 알려주겠다.
간단하게 설명하자면 StringBuilder라는 문자열 메모리를 만들어주고 여기에 계속해서
문자열을 더한후에 원할때 한번 출력하는 방식이다.
이때 StringBuilder에 문자열을 추가하고자 할때에는 append메소드(함수)를 사용하면 된다.
예시는 아래와 같다
public class Main{
public static void main(String[] args)
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 100; i++)
{
sb.append("Hello world\n");
}
System.out.println(sb);
}
}
>> Hello world 백번출력
맨 위에 있는 코드와 같은 출력이 나온다.
StringBuilder메모리를 가진 sb에 append()를 활용하여 문자열을 계속 저장한 후에
마지막에 System.out.println에서 sb를 출력하면 된다.
한가지 문제점은 출력하고 StringBuilder을 비우기전까지는 계속해서 메모리를 잡아먹는다는 것이다.
따라서 출력하고 저장해야 하는 문자열이 많아질수록 System.out.println보다 시간복잡도는 더 작지만
메모리가 더 필요하다는 것을 알 수 있다.
append메소드 이외에도 StringBuilder에서 사용하는 몇가지 메소드가 있는데 이것은 추후에
StringBuilder 주요 메소드 글로 돌아오도록 하겠다.
'자바(Java)' 카테고리의 다른 글
[자바] HashSet 중복값 처리 과정, 배열로 변경하는 법 (0) | 2023.08.08 |
---|---|
[자바] 자바 조건문과 반복문, JUnit 5 (0) | 2023.08.05 |
[자바] 자바 연산자 (0) | 2023.07.29 |
[자바] 자바의 프리미티브 타입, 변수, 배열 선언 (0) | 2023.07.24 |
[자바] JVM, 자바 실행방법 (2) | 2023.07.16 |