- String 클래스로 생성된 String 객체는 Immutable하다는 특징이 있습니다.
-> 즉, 한 번 생성된 이후에 값의 변경이 불가능합니다.
-> 만약 두 개의 String 객체가 더해지면, 새로운 String 객체가 만들어지면서,
기존의 String 객체는 버려집니다.
-> 이는 메모리 낭비로 이어질 수 있습니다.
- StringBuilder 클래스와 StringBuffer 클래스는 String 클래스의 Immutable하다는 특징을
보완하기 위해 만들어졌습니다.
-> 즉, StringBuilder 클래스와 StringBuffer 클래스는 mutable합니다.
-> 두 클래스의 차이점은 StringBuilder 클래스는 Thread Safe하지 않고,
StringBuffer 클래스는 Thread Safe하다는 것입니다.
-> 속도는 Thread Safe하지 않은 StringBuilder 클래스가 더 빠릅니다.
-> 다만, 여러 쓰레드가 동시에 접근할 일이 있다면 Thread Safe한 StringBuffer 클래스를 사용해야 합니다.
- StringBuffer 클래스가 Thread Safe한 이유는 메소드들이 synchronized되어 있기 때문입니다.
- StringBuilder 클래스와 StringBuffer 클래스에서 가장 많이 사용되는 메소드는 append() 입니다.
'자료구조' 카테고리의 다른 글
해시 테이블 (0) | 2022.06.29 |
---|---|
자료구조(1) (0) | 2022.06.20 |
리스트 (0) | 2022.06.18 |
배열과 리스트(Mission 1) (0) | 2022.06.15 |
병합 정렬(merge sort) (0) | 2022.06.07 |