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
동기화 미지원
동기화를 지원하지 않아 속도가 빠르다.
'2021 Newlecture > JAVA' 카테고리의 다른 글
StringBuffer클래스 (0) | 2021.09.19 |
---|---|
클래스변수 (0) | 2021.09.18 |
Wrapper class (0) | 2021.08.22 |
자바 컬렉션과 제네릭 강의 (0) | 2021.04.25 |
자바 총 정리 (1) | 2021.04.13 |
Inner class / Anonymous class (0) | 2021.04.12 |
인터페이스 구현 (0) | 2021.04.12 |
(추가정리) 추상클래스 와 인터페이스 (0) | 2021.04.11 |