public class StringExample {
public static void main(String[] args) {
// 1. String (불변)
String str = "Hello"; // String str = new String("Hello");
str += " World"; // 새로운 객체 생성됨
System.out.println("String: " + str);
// 2. StringBuilder (가변, 빠름)
StringBuilder sb = new StringBuilder("Hello");
sb.append(" World");
System.out.println("StringBuilder: " + sb);
// 3. StringBuffer (가변, 멀티스레드 안전)
StringBuffer sbf = new StringBuffer("Hello");
sbf.append(" World");
System.out.println("StringBuffer: " + sbf);
}
}
- 설명: 1은 불변 2,3 은 가변객체이다. 불변(문자열 변경시 새로운 객체 생성), 가변(새로운 객체 생성 x) 인 것
- 주요 메서드
| 메서드 | String | StringBuilder / StringBuffer | 설명 |
| length() | ✅ | ✅ | 문자열 길이 반환 |
| charAt(int index) | ✅ | ✅ | 특정 위치 문자 가져오기 |
| substring(int start, int end) | ✅ | ✅ | 문자열 일부 추출 |
| indexOf(String str) | ✅ | ✅ | 특정 문자열의 위치 찾기 |
| replace(CharSequence target, CharSequence replacement) | ✅ | ✅ | 특정 문자열 치환 |
| toString() | ✅ | ✅ | 문자열로 변환 |
| equals(Object obj) | ✅ | ❌ | 문자열 비교 (StringBuilder/StringBuffer는 오버라이딩 X) 빌더와 필터는 toString().equals()로 비교하거나 compareTo() 사용하여 비교 |
| append(String s) | ❌ | ✅ | 문자열 추가 (String은 + 연산자로 가능) |
| insert(int offset, String s) | ❌ | ✅ | 특정 위치에 문자열 삽입 |
| delete(int start, int end) | ❌ | ✅ | 특정 범위 문자열 삭제 |
| deleteCharAt(int index) | ❌ | ✅ | 특정 위치 문자 삭제 |
| reverse() | ❌ | ✅ | 문자열 뒤집기 |
| setCharAt(int index, char c) | ❌ | ✅ | 특정 위치 문자 변경 |
'IT > JAVA&Spring' 카테고리의 다른 글
| spring boot gradle 프로젝트 VSCode에서 HTML 파일 등 재시작 없이 자동 Reload 하기 (0) | 2025.11.29 |
|---|---|
| spring web, thymeleaf, log4j2, aop 의존성 주입하기 (0) | 2025.11.29 |
| vscode에 spring boot + react 환경 구축하기 (0) | 2025.11.28 |
| JAVA 빌드 도구 (1) | 2025.05.15 |
| Lombok? (0) | 2025.05.15 |