String, StringBuffer, StringBuilder 모두 문자열을 저장하고, 관리하는 클래스
✅ StringBuffer / StringBuilder
String 클래스의 인스턴스는 한 번 생성되면 그 값을 읽기만 할 수 있고, 변경 불가능
▶ StringBuffer 클래스의 인스턴스는 값을 수정하거나, 추가 가능
StringBuffer | StringBuilder |
스레드에 안전한 프로그램이 필요할 때 사용 | 스레드에 안전한지 여부가 전혀 관계 없는 프로그램을 개발할 때 사용 |
단순히 성능만 놓고 본다면 연산이 많은 경우, StringBuilder > StringBuffer >>> String 입니다.
✋ String vs StringBuffer 차이
String 인스턴스의 문자열은 덧셈(+) 연산자로 결합 ▶ 합쳐진 문자열은 새로운 String 인스턴스를 생성
❗ 문자열을 결합할수록 공간이 낭비될 뿐만 아니라 실행 속도도 매우 느려짐
StringBuffer 인스턴스를 사용하면 문자열을 바로 추가 가능
❗ 공간의 낭비도 없으며 속도도 매우 빠름
📌 StringBuffer의 메소드
append() | 전달받은 값을 문자열로 반환하여 해당 문자열의 마지막에 추가 |
capacity() | StringBuffer 인스턴스의 현재 버퍼 크기를 반환 |
delete() | 지정한 인덱스의 해당하는 부분 문자열을 제거 |
deleteCharAt() | 해당 인덱스의 문자 한 개만 제거 |
insert() | 지정한 인덱스 위치에 입력 값을 문자열로 변환한 후 해당 인덱스 위치에 문자열을 추가 |
ex)
append()
StringBuffer str = new StringBuffer("Hello");
System.out.println(str.append(" Java!")); // Hello Java!
capacity()
StringBuffer str1 = new StringBuffer();
StringBuffer str2 = new StringBuffer("Hello");
StringBuffer str3 = new StringBuffer(" Java!");
// StringBuffer 인스턴스 생성 시, 16글자의 여유 공간을 가지고 생성된다.
System.out.println(str1.capacity()); // 16
delete()
StringBuffer str = new StringBuffer("Hello World!");
System.out.println(str.delete(5, 11)); // Hello!
deleteCharAt()
StringBuffer str = new StringBuffer("Hello World!");
System.out.println(str.deleteCharAt(1)); // Hllo!
insert()
StringBuffer str = new StringBuffer("Hello");
// System.out.println(str.append(" World!"));
System.out.println(str.insert(5, " World!")); // Hello World!
System.out.println(str.insert(5, " Java")); // Hello Java World!
'Database > ORACLE' 카테고리의 다른 글
[ORACLE 이론] DECODE / CASE (0) | 2025.01.15 |
---|---|
[ORACLE 이론] 여러 값을 한 번에 업데이트 (0) | 2025.01.15 |
[ORACLE 이론] NVL 함수 (0) | 2024.02.15 |
[ORACLE 이론] 조건문 (0) | 2024.02.14 |
[ORACLE 이론] CRUD 삽입 INSERT, 읽기 SELECT, 갱신 UPDATE, 삭제 DELETE (1) | 2024.02.14 |