Java를 일찍 사용했을 때 Stringbuffer라는 클래스가 더 긴 스티칭으로 String을 위해 클래스가 있다는 것을 알았습니다. C#으로 전환 한 후에는 StringBuilder라는 기능이 모두 SB입니다.
나중에 Java로 다시 옮길 때 Java에 StringBuilder가 있다는 것을 알았으므로 StringBuffer 이후 StringBuilder를 출시 한 이유가 궁금했습니다.
Java의 StringBuilder (C#과 동일)가 비 스레드 보안이며 이전 StringBuffer에는 특정 스레드 보안 속성이 있습니다. 물론 StringBuilder의 출시는 주로 여러 스레드에서 사용할 필요가 없기 때문입니다.
StringBuilder (또는 StringBuffer)의 일반적인 경우는 ::
public String toString () {return new StringBuilder () .appnd ( "이름 :" + name) .appnd ( "foo :" + foo) .appnd ( "bar :" + bar) .tring ();}
이 경우 StringBuilder는 클래스 멤버가 아닙니다.
결과적으로 StringBuilder의 도입은 큰 성능 개선을 가져 왔으며 보안 문제는 없었습니다 ...