>Java >java지도 시간 >Java에서 StringBuffer와 StringBuilder의 차이점

Java에서 StringBuffer와 StringBuilder의 차이점

高洛峰
高洛峰원래의
2017-01-22 11:44:221578검색

저는 이전에 Java를 사용할 때 긴 문자열을 연결하는 데 사용되는 StringBuffer라는 클래스가 있다는 것을 알았습니다. C#으로 전환한 후에는 StringBuilder라는 비슷한 기능을 가진 클래스도 있습니다. 약어는 sb이며 기억하기 매우 쉽습니다.

나중에 Java로 다시 전환했을 때 Java에도 StringBuilder가 있다는 것을 알게 되었는데, StringBuffer 다음에 StringBuilder가 도입된 이유가 궁금했습니다.

C#과 같은 Java의 StringBuilder는 스레드로부터 안전하지 않지만 이전 StringBuffer에는 특정 스레드 안전 속성이 있는 것으로 나타났습니다. 물론 StringBuilder가 도입된 이유는 멀티 스레드 상황에서 사용할 필요가 없기 때문입니다.

일반적인 StringBuilder(또는 StringBuffer) 사용 사례는 다음과 같습니다.

public String toString() {
 return new StringBuilder()
  .append("Name: " + name)
  .append("Foo: " + foo)
  .append("Bar: " + bar)
  .toString();
}

이 경우 StringBuilder는 클래스 멤버가 아니며 단지 지역 변수일 뿐 전혀 아닙니다. 멀티스레딩 문제는 말할 것도 없습니다.

결과적으로 StringBuilder의 도입으로 성능이 크게 향상되었으며 보안 문제도 전혀 발생하지 않았습니다...

StringBuffer와 StringBuilder의 차이점에 대한 더 많은 기사를 보려면 Java의 경우 PHP 중국어 웹사이트를 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.