String 클래스의 인스턴스는 한 번 생성되면 그 값을 변경 할 수 없다
StringBuffer 클래스의 인스턴스는 변경할 수 도 있고, 추가할 수 도있다.
이를 위해 StringBuffer 클래스는 내부적으로 버퍼(buffer)라고 하는 독립적인 공간을 가진다.
버퍼 크기의 기본값은 16개의 문자를 저장 할 수 있는 크기임
String 클래스를 이용한 연산보다 StringBuffer 인스턴스를 사용하면 공간의 낭비도 줄일 수 있고, 내부적인 속도도 매우 빨라진다.
StringBuffer str = new StringBuffer("Java");
System.out.println(str.append(" programming"));
System.out.println(str);
//Java programming
StringBuffer str = new String("Java");
System.out.println(str.concat(" programming"));
System.out.println(str);
//Java programming
모양은 같다.
StringBuffer str01 = new StringBuffer();
StringBuffer str02 = new StringBuffer("Java");
System.out.println(str01.capacity());
System.out.println(str02.capacity());
//16
//20
StringBuffer str = new StringBuffer("Java Oracle");
System.out.println(str.delete(4, 8));
System.out.println(str.deleteCharAt(1));
//Javacle
//Jvacle
- delete() 메서드를 사용하여 해당 문자열에서 인덱스가 4인 위치의 문자부터 7인 위치의 문자까지를 삭제하고 있다.
- deleteCharAt() 메서드는 특정 위치의 문자 한개만 제거한다. 이때 위에서 이미 delete()가 적용되어있기때문에 그 상태에서 적용된다.
StringBuffer str = new StringBuffer("Java Programming!!");
System.out.println(str.insert(4, "Script"));
//JavaScript Programming!!
인덱스가 4인a 뒤에 Script가 추가된다.