Java에서 String, StringBuffer 및 StringBuilder의 차이점 – 첨부된 예제

게시 됨: 2022-01-30
Java에서 String, StringBuffer 및 StringBuilder의 차이점 - 비교 및 ​​예제 첨부

이 Java 자습서에서는 Java String, StringBuffer 및 StringBuilder의 차이점을 살펴보겠습니다.

시작하자:

끈:

String 클래스는 문자열을 나타냅니다. "crunchify"와 같은 Java 프로그램의 모든 문자열 리터럴은 이 클래스의 인스턴스로 구현됩니다. 문자열은 일정합니다. 값을 만든 후에는 변경할 수 없습니다.

문자열 버퍼:

스레드로부터 안전하고 변경할 수 있는 문자 시퀀스입니다. 문자열 버퍼는 문자열과 비슷하지만 수정할 수 있습니다.

특정 시점에서 특정 문자 시퀀스를 포함하지만 시퀀스의 길이와 내용은 특정 메서드 호출을 통해 변경할 수 있습니다.

문자열 버퍼는 여러 스레드에서 사용하기에 안전합니다.

스트링 빌더:

변경 가능한 문자 시퀀스입니다. 이 클래스는 StringBuffer와 호환되는 API를 제공하지만 동기화를 보장하지는 않습니다.

이 클래스는 단일 스레드에서 문자열 버퍼를 사용하던 곳(일반적으로)에서 StringBuffer의 드롭인 대체품으로 사용하도록 설계되었습니다.

가능한 경우 대부분의 구현에서 이 클래스가 더 빠르기 때문에 StringBuffer보다 우선적으로 이 클래스를 사용하는 것이 좋습니다.

아래의 String, StringBuffer, StringBuilder의 특성을 모두 비교해보자.

문자열 버퍼 스트링 빌더
스레드 안전? 아니요
동기화? 아니요
수정 가능? 아니요(불변) 예(변경 가능) 예(변경 가능)
저장 문자열 풀 더미 더미
성능 느린 빠른 더 빠르게

자바 코드:

  • 클래스 생성: CrunchifyStringVsStringBufferVsStringBuilder.java
  • 거기에 아래 코드를 넣어
  • 파일을 저장

이 튜토리얼에서는 총 199999번 추가, 추가 문자열을 추가합니다.

IntelliJ IDEA 콘솔 결과:

IntelliJ IDEA 또는 Eclipse 콘솔에서 위 프로그램을 Java 응용 프로그램으로 실행하면 아래와 같은 결과가 나타납니다.

위 프로그램을 실행하는 데 문제가 있거나 String, StringBuffer 및 StringBuilder 사이에 질문이 있으면 알려주십시오.