JAVA

[JAVA] String / StringBuffer / StringBuilder 차이

빅콜팝 2022. 10. 8. 01:47
728x90
반응형

String / StringBuffer, StringBuilder의 가장 큰 차이점

 

- String : 불변(immutable)의 속성을 가짐

- StringBuffer, StringBuilder : 가변(mutable)의 속성을 가짐

  • .append() / .delete() 등의 api를 이용하여 동일 객체내에서 문자열을 변경하는 것이 가능

 

→ 따라서 문자열의 추가,수정,삭제가 빈번하게 발생할 경우라면 String 클래스가 아닌 StringBuffer/StringBuilder를 사용

StringBuffer / StringBuilder 차이점

  • 동기화 유무(StringBuffer O / StringBuilder X)

StringBuffer는 동기화를 지원하기 때문에 멀티쓰레드 환경에서 안정성을 가지고 있다.
반대로 StringBuilder는 동기화를 지원하지 않기 때문에 멀티쓰레드 환경에서 사용하는 것은 적합하지 않지만
동기화를 고려하지 않는 단일쓰레드에서의 성능은 StringBuffer 보다 뛰어나다.

 

요약

String 문자열 연산이 적고 멀티쓰레드 환경일 경우
StringBuffer 문자열 연산이 많고 멀티쓰레드 환경일 경우
StringBuilder  문자열 연산이 많고 단일쓰레드이거나 동기화를 고려하지 않아도 되는 경우

 

스레드

: 프로세스가 할당받은 자원을 이용하는 실행 단위

 

 

스레드 자세히 알아보기

 

프로그램(Program) / 프로세스(Process) / 스레드(Thread)

프로그램(Program) : 어떤 작업을 위해 실행할 수 있는 파일 (설치된 프로그램) - 저장장치에 저장되어있는 정적인 상태 프로세스(Process) : 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램 (

zhfvkq.tistory.com

 

728x90
반응형

'JAVA' 카테고리의 다른 글

JUnitParamsRunner 매개변수를 이용하여 Junit 테스트  (0) 2022.12.29
[JAVA] 정규 표현식(replaceAll)  (1) 2022.10.08