2021 Newlecture/JAVA

String , StringBuffer, StringBuilder 차이점

haileykim2014 2021. 8. 20. 01:48

String , StringBuffer,StringBuilder 차이점

1. String 
새로운 값을 할당할때 마다 새로 클래스에 대한 객체가 생성된다.
String에서 저장되는 문자열은 private final char[] 의 형태이기 때문에 String값은 변경 할 수없다.
String + String + String은 각각의 String주소값이 stack에 쌓이고 GC가 호출되기 전까지 생성된 String객체들은 Heap에 쌓이기 떄문에 메모리관리에 치명적이다.

 

인스턴스안의 저장된 문자열을 바꿀수없다

한번 생성되면 문자열을 바꿀 수 없다.
참조변수는 참조하는게 다임

str1이 str2를 참조해도 문제가안생긴다. 둘다 참조만가능하므로 ..

백개의 참조변수가생겨도 문제가 안생긴다.
새 인스턴스가 아니라 기존 값을 반환해준다.

새로운 인스턴스가 필요하다면 new로 새 객체생성가능

2. StringBuffer
동기화지원
각 메서드 별로 synchronized keyword가 존재한다.

3. StringBuilder
동기화 미지원
동기화를 지원하지 않아 속도가 빠르다.