(1) String, StringBuffer, StringBuilder란?

  • 자바에서 문자열을 다루는 클래스이다.

(2) String, StringBuffer, StringBuilder 차이점은?

  • String - 한번 생성되면 할당된 메모리 공간이 변하지 않습니다. + 연산자 또는 concat 메서드를 통해 기존에 생성된 String 클래스 객체 문자열에 다른 문자열을 붙여도 기존 문자열에 새로운 문자열을 붙이는 것이 아니라, 새로운 String 객체를 만든 후, 새 String 객체에 연결된 문자열을 저장하고, 그 객체를 참조하도록 합니다.
  • StringBuffer, StringBuilder - 크기가 유연하게 변하는 가변적인 특성을 가지고 있으며 제공하는 메서드도 같고 사용하는 방법도 동일합니다. 하지만 두 클래스는 동기화 지원의 유무가 다릅니다. StringBuffer는 각 메서드 별로 synchronized keyword가 존재하여 멀티 스레드 상태에서 동기화를 지원하고 StringBuilder단일 스레드 환경에서만 사용하도록 설계되어 있습니다. StringBuilder가 StringBuffer보다 속도는 더 빠르지만 현업에서는 언제 멀티스레드 환경에서 돌아가지 알지 못하기에 안정적인 StringBuffer로 통일하여 코딩하는것이 좋습니다.
  String String Buffer String Builder
저장소 String pool Heap Heap
수정 가능 No (immutable) Yes (mutable) Yes (mutable)
스레드 동기화 Yes Yes No
퍼포먼스 Fast Slow Fast

참조 - https://ifuwanna.tistory.com/221, https://coding-factory.tistory.com/546

'Study > Java' 카테고리의 다른 글

[Java] Java의 대표 Collection  (0) 2021.06.29

(1) Collection 이란?

  • 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미한다.
  • List, Map, Set 인터페이스를 기준으로 여러 구현체가 존재한다. 이에 더해 Stack과 Queue 인터페이스도 존재한다.


(2) Collection 장점

  • 클래스들을 제공해 주기 때문에 데이터 구조를 직접 구현하지 않고 사용하기 편하다.
  • 배열과는 다르게 객체를 보관하기 위한 공간을 미리 정하지 않아도 된다. (동적 메모리 할당)

(3) Collection 인터페이스

  • List - 순서가 있으며 중복을 허용한다.
  • Set - 순서가 중요하지 않고 중복을 허용하지 않는다.
  • Map - 키(Key)-값(Value) 으로 이루어져 있으며 키는 중복을 허용하지 않지만 값은 중복을 허용한다.
  • Stack - 나중에 들어온 데이터가 먼저 출력되는 LIFO 형태이다.
  • Queue - 먼저 들어온 데이터가 먼저 출력되는 FIFO 형태이다.

참조 - https://en.wikipedia.org/wiki/Java_collections_framework

'Study > Java' 카테고리의 다른 글

[Java] String, StringBuffer, StringBuilder 의 차이점  (0) 2021.06.30

+ Recent posts