개발/Java

JAVA String, StringBuffer, StringBuilder 정리

8시20분 2021. 10. 7. 08:20

자바 string buffer와 string builder => multi thread 지원 차이

 

String vs StringBuffer/Builder

  • String은 immutable( 불변 )성을 가짐
  • String Buffer & Builder는 mutable( 가변 )을 가짐

 

StringBuffer vs String Builder

  • StringBuffer는 동기화 키워드를 지원하여 멀티쓰레드 환경에서 안전함
  • StringBuilder는 동기화 미지원으로 단일 쓰레드의 성능은 StringBuffer보다 뛰어남

 

String : 문자열 연산이 적고, 멀티쓰레드 환경에 적합

StringBuffer : 문자열 연산이 많고, 멀티쓰레드 환경에 적합

StringBuilder : 문자열 연산이 많고, 단일쓰레드 환경에 적합

 

string = “ ” 하는것과 new String 하는 것의 차이

 

String = “ ” 방식의 경우, JVM 힙 메모리의 String Pool 안에는 “ “ 문자열이 생성되고, 변수가 레퍼런스로 포인팅함.

 

new String(“ “) 방식의 경우, Heap 메모리에 객체를 생성한다.

 

StringPool 등록하려는 경우, intern( ) 메서드를 사용한다. 문자열을 비교시 equals( ) 사용하자.