이번 포스팅에서는
StringBuffer와 String의 차이점을 알아보려고 합니다!
1.StirngBuffer와 String의 차이점
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append("Hello");
stringBuffer.append(" ");
stringBuffer.append("I am min");
System.out.println(stringBuffer .toString());
// 출력 : Hello I am min
이와같은 예제가 있다고 할 때에
위의 2번째 줄 코드를 보면 .append()는 Stirng의 문자열 덧셈과 크게 다른점이 없어 보이는데요..
하지만 내부적인 메모리 관점에서 보면 String의 문자열 덧셈 보다 StringBuffer가 더 효율적으로 작성되게 됩니다.
위의 예시를 보면 StringBuffer 객체를 한번 생성하게 됩니다.
반면에 String의 경우 아래와 같이
String string = new String("Hi");
String min = new string(" ");
String mimi = new string("I am min");
System.out.println(string + min + mimi);
문자열 덧셈 연산이 이루어질 때마다 Stirng 객체가 생성되어야 합니다.
Stirng의 경우는 자료값 안에 문자열이 한번 생성되면 그 값을 절대 변경할 수 없습니다.
예를들어 String의 toUpperCase()와 같이 대문자로 변경 해주는 메소드를 보면 문자열이 변경되는 것이 아니라 또 다른
String 객체를 생성하게 됩니다.
반면에 StringBuffer은 그 값을 변경할 수 있습니다.
하지만 StringBuffer은 Stirng보다 메모리 사용량이 더 크고 속도가 느립니다.
따라서 Stirng과 Stirng Buffer은 상황에 맞도록 알맞게 사용되어야 합니다.
결론:
문자열의 추가 또는 변경 작업이 많을 경우에는 StringBuffer을 사용해서 효율적으로 작성하면 좋다.
문자열의 추가 또는 변경 작업이 적을 경우에는 Stirng을 사용해서 메모리 사용량을 낮추고 속도를 높이는 것이 좋다.
'JAVA' 카테고리의 다른 글
JSON 직렬화, 역직렬화 Convert Java Object to JSON (0) | 2023.01.13 |
---|---|
객체지향 프로그래밍 - 클래스(Class)와 객체(Object) // (개발자 기초용어) *알기쉽게 정리 (2) | 2022.12.27 |
Java 문자열 뒤집기 StringBuilder.reverse() (Reverse Stirng ) (0) | 2022.12.26 |
StringBuilder / StringBuffer 클래스 및 자주 쓰이는 매서드 정리 (0) | 2022.12.21 |
StringTokenizer 클래스 정리 (0) | 2022.12.21 |
댓글