본문 바로가기

JAVA

String, StringBuffer, StringBuilder

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