아래의 문자열 연결을 분석하겠습니다.
1. 스트링
그림과 같이 문자열 소스 코드를 엽니 다.
문자열을 저장하는 문자 값은 최종 상수임을 알 수 있습니다. 문자열의 구조 방법을 살펴보면 문자열 값이 시공 방법에 의해 결정된다는 것을 발견했습니다. 여기에서 키워드를 최종적으로 설명해야합니다
Final으로 수정 된 속성은 상수입니다 (값은 변경할 수 없습니다). 값을 선언하는 동안 값을 할당하거나 건설 방법에 값을 할당합니다. 할당되면 변경할 수 없습니다.
따라서 문자열을 사용하여 문자열 스티칭을 구현합니다. 문자열 값을 변경할 수 없으므로 새 문자열을 저장하려면 각 스티칭마다 새 문자열을 생성해야합니다. 따라서 문자열을 사용하여 문자열 스티칭을 처리하면 성능이 매우 낮습니다.
String에 대한 자세한 내용은 블로그를 참조하십시오 : http://longpo.iteye.com/blog/2199493
2.StringBuffer
StringBuffer 클래스는 Abstract Class AbstractStringBuilder 클래스를 상속하고 AbstractStringBuilder 소스 코드를 엽니 다.
세 가지 과부하 방법을 살펴 보겠습니다
상위 클래스의 모든 생성자가 AbstractStringBuilder가 호출되는 것으로 밝혀졌습니다.
StringBuffer가 데이터를 저장하는 Char 어레이는 최종 유형이 아닌 것으로 밝혀졌습니다. 즉, 변경 될 수 있으며 구성된 문자열은 여전히 문자열을 접을 수있는 여유 공간이 있습니다.
StringBuffer에서는 append () 함수를 스플 라이스 스트링에 사용합니다. 우리는 여전히 숯 어레이에 남은 것이 있지만 항상 그것을 스플릿하는 것만으로는 충분하지 않다고 생각할 수 있습니다. 따라서 Append 함수의 소스 코드 구현을 살펴볼 필요가 있습니다.
부모 수업 AbstractStringBuilder의 Append 메소드를 확인하십시오.
값 배열이 충분한 용량이 불가능한 경우, 문자열을 저장하기 위해 새 값 배열이 생성됩니다. 이 시점에서 StringBuffer String 스 플라이 싱의 원리를 이해해야합니다. Char 값 배열이 충분하지 않으면 더 큰 용량 배열이 생성됩니다. 효율은 스트링의 효율보다 상당히 높습니다.
3.StringBuilder
StringBuilder와 StringBuffer는 두 형제이며, 그들의 사용법은 기본적으로 동일합니다. 차이점은 StringBuffer가 동기화되고 스레드 안전성이며 StringBuilder는 동기화 및 스레드 안전을 보장하지 않는다는 것입니다.
StringBuilder는 대부분의 구현에서 StringBuffer보다 빠르며 String Buffers에 단일 스레드에 액세스 할 때 StringBuilder를 먼저 사용하는 것이 좋습니다.
위는 편집자가 소개 한 Java 문자열 선택입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!