String, StringBuffer, StringBuilder 의 차이점
String은 불변의 특징을 가지고 있음.
불변이란 값이 변하지 않는 특성을 의미함.
String은 값을 변화시킬 수 있는데 왜 불변일까? 에 대한 답변
- String의 값을 변화시키면 String이 참조하고 있는 메모리 내부의 값이 변화하는 것이 아님
- "Hello" 이라는 값을 가진 메모리를 참조하고 있는 String 객체에 + " World" 연산을 진행하면, "Hello World" 값이 들어있는 추가 메모리를 할당하여 그 메모리의 참조 값을 갖게 됨.
- 기존 "Hello" 값은 아무도 참조하지 않아 가비지 컬렉터에 의해 제거
StringBuffer, StringBuilder 는 메모리 공간을 생성하여 그 메모리 공간에 값을 추가할 수 있음
- 둘의 차이점은 멀티 스레드의 동기화 여부라고 함. Buffer는 동기화 가능, Builder는 동기화 불가능
- 보통은 Buffer로도 충분하지 않을까.. 싶음
'JAVA' 카테고리의 다른 글
240216 JAVA 옵셔널 공부하기 (0) | 2024.02.16 |
---|---|
240111 홈페이지 만들기 (2) | 2024.01.11 |
240103 Java (0) | 2024.01.03 |
231227 Java (0) | 2023.12.27 |
231226 Java (0) | 2023.12.26 |