>  기사  >  Java  >  언제 String 대신 StringBuilder를 선택해야 합니까?

언제 String 대신 StringBuilder를 선택해야 합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-18 02:41:02522검색

When Should I Choose StringBuilder Over String?

String 대신 StringBuilder를 사용하는 이유는 무엇입니까?

Java의 강력한 클래스인 String은 추가를 허용합니다. 그러나 String의 기능에도 불구하고 특별한 이유로 StringBuilder라는 별개의 클래스가 등장했습니다.

불변성과 가변성

근본적인 차이점은 String과 StringBuilder의 특성에 있습니다. 문자열은 불변입니다. 즉, 내부 상태는 변경될 수 없습니다. String에 대해 수행되는 각 작업은 새로운 객체를 생성하게 됩니다. 반복되는 연결이 포함된 작업에는 비효율적일 수 있습니다.

반대로, StringBuilder는 변경 가능합니다. StringBuilder에 추가하면 새 개체를 만드는 대신 내부 char 배열이 수정됩니다. 이렇게 하면 문자열 조작 성능이 크게 향상됩니다.

효율성

다음 코드를 고려하세요.

String str = "";
for (int i = 0; i < 500; i++) {
    str += i;
}

이 코드 조각은 500개의 새로운 문자열 개체를 생성합니다. , 이는 비효율적입니다. 대신 StringBuilder를 사용하면

StringBuilder sb = new StringBuilder();
for (int i = 0; i < 500; i++) {
    sb.append(i);
}

단 하나의 StringBuilder 객체만 수정되어 성능이 크게 향상됩니다.

최적의 사용

StringBuilder를 사용하는 동안 연결에 더 효율적이므로 컴파일러가 여러 문자열을 생성하지 않도록 특정 문자열 표현식을 자동으로 변환한다는 점에 유의하는 것이 중요합니다. 객체. 예를 들면 다음과 같습니다.

String d = a + b + c; // implicit use of StringBuilder

스레드 안전성이 중요하다면 동기화된 메서드를 제공하는 StringBuffer 사용을 고려해 보세요.

위 내용은 언제 String 대신 StringBuilder를 선택해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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