-제이ava의 StringBuffer는 변경 가능한 문자열을 처리하기 위한 클래스입니다. 즉, 새 문자열을 추가하거나 변경할 때 “기존 객체”추가 및 변경됩니다.
(더 알아보기)
불변 클래스
– 이는 원본 개체가 생성된 후에는 상태를 변경할 수 없음을 의미합니다. 원래 생성된 개체가 추가되거나 수정되면 새 개체가 다시 생성되고 구성됩니다. – Java에서 String, Integer, Float, Double, Long, Short, Byte, Character, BigDecimal 및 BigInteger와 같은 클래스는 불변 클래스에 속합니다.
가변 클래스
– 이는 첫 번째 개체를 생성한 후 상태를 변경할 수 있음을 의미합니다. 원래 생성된 객체를 추가하거나 수정하면 기존 객체로 상태가 변경되어 구성된다. – Java에서 StringBuffer, StringBuilder, ArrayList, LinkedList, HashMap, HashSet, TreeMap 및 TreeSet과 같은 클래스는 가변 클래스에 속합니다.
2) String과 StringBuffer의 차이점
차이점
선
문자열 버퍼
클래스 유형
불변 클래스
가변 클래스
추가 및 변경 시 메모리 사용량
새 개체를 만들 때마다 메모리 사용량이 증가합니다.
기존 개체를 사용하기 때문에 메모리 사용량이 상대적으로 적습니다.
상수 문자열인 경우
이점
불리
잦은 문자열 변경으로
불리
이점
문자열로 객체를 추가하는 방법
String s = "Hello";
s += " World"; // String 객체가 재 생성된다.
StringBuffer를 사용하여 문자열을 변경하는 방법
StringBuffer sb = new StringBuffer("Hello");
sb.append(" World"); // 기존의 StringBuffer 객체에 추가가 된다.