본문 바로가기

자료구조

String, StringBuilder, StringBuffer API(Mission 2)

- 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