본문 바로가기
Language/JAVA

[JAVA]StringBuffer VS StirngBuilder

by 바까 2020. 7. 1.
반응형

프로그램을 만들다 보면 문자열을 변경하거나 연결해야 할 때가 많다.

그런데 String클래스는 한번 생성되면 그 내부의 문자열이 변경되지 않기 때문에, String 클래스를 사용하여 문자열을 계속 연결하거나 변경하는 프로그램을 작성하면 메모리 낭비가 많다.

이 문제를 해결하는 것이 바로 StringBufferStringBuilder 클래스이다.

StringBuffer와 StringBuilder는 내부에 변경 가능한(final이 아닌) char[] 변수로 가지고 있다.

이 두 클래스를 이용하여 문자열을 연결하면 기존에 사용하던 char[] 배열이 확장되므로 추가 메모리를 사용하지 않는다. 따라서 문자열을 연결하거나 변경할 경우 두 클래스 중 하나를 사용하면 된다.

두 클래스의 차이는 여러작업(스레드)이 동시에 문자열을 변경하려 할 때 문자열이 안전하게 변경되도록 보장해 주는가 그렇지 않은가에 차이이다.

StringBuffer 클래스는 문자열이 안전하게 변경되도록 보장하지만, StringBuilder클래스는 보장되지 않는다.

프로그램에서 따로 스레드를 생성하는 멀티스레드 프로그램이 아니라면 StirngBuilder를 사용하는 것이 실행 속도가 좀 더 빠르다.


StringBuffer VS StirngBuilder

  StirngBuffer StirngBuilder
용도 문자열을 연결하거나 변경할경우 사용
차이 문자열이 안전하게 변경되도록 보장 o 문자열이 안전하게 변경되도록 보장 x
속도 - StirngBuffer보다 더 빠름

 

반응형

'Language > JAVA' 카테고리의 다른 글

[JAVA] 람다식(lambda expression)  (0) 2020.07.01
[JAVA]내부클래스  (0) 2020.07.01
[JAVA]String 클래스  (0) 2020.07.01
[JAVA]Object 클래스  (0) 2020.07.01
[JAVA] 인터페이스 상속  (0) 2020.06.29

댓글