> Java > java지도 시간 > 본문

java_String과 StringBuffer의 차이점 분석

高洛峰
풀어 주다: 2017-01-22 09:34:13
원래의
1329명이 탐색했습니다.

이 StringBuffer 클래스에서 제공하는 문자열은 수정될 수 있습니다. 문자 데이터가 변경될 것이라는 것을 알고 있는 경우 StringBuffer를 사용할 수 있습니다. 일반적으로 StringBuffer를 사용하여 문자 데이터를 동적으로 생성합니다.

자바에는 문자 연산을 담당하는 세 가지 클래스가 있습니다.

1.Character는 단일 문자에 대해 작동하고

2.String은 문자열에 대해 작동합니다. 불변 클래스.

3.StringBuffer도 문자열에 대해 작동하지만 변수 클래스입니다.

String:
은 기본 유형이 아닌 객체입니다.
은 일단 생성되면 해당 값을 수정할 수 없습니다.
기존 String 객체에 대한 수정은 모두 새로운 것입니다. 새 개체를 만들고 새 값을 저장합니다.
String은 최종 클래스입니다. 즉,

StringBuffer:
는 수정될 때 변경 가능한 개체입니다. 객체는 String처럼 다시 생성되지 않습니다
생성자
StringBuffer sb = new StringBuffer();
참고: 값 기호
sb를 통해서만 생성할 수 있습니다. = "welcome to here!";//error
객체가 생성된 후 메모리 공간이 메모리에 할당되고 처음에는 StringBuffer
에 값을 지불할 때 해당 추가 항목을 전달할 수 있습니다. method.
sb.append("hello");

위 내용은 인터넷에서 흔히 볼 수 있는 내용을 발췌한 것입니다. 다음은 제가 직접 추가한 의견입니다.

주소는 불가능합니다. 변경되면 길이와 내용이 변경될 수 있습니다. Append() 메소드는 예약된 메모리를 초과하면 메모리가 두 배가 됩니다.

효율성 비교: StringBuffer가 String보다 높습니다. StringBuffer는 공간을 예약하고 계속 추가하기 때문에 하나의 개체에서만 작동합니다. 문자열은 수정할 수 없으며 객체는 수정을 위해 반복적으로만 생성될 수 있습니다. ——문자열을 자주 추가, 교체, 수정, 삽입, 삭제하는 경우에는 StringBuffer를 사용하는 것이 가장 좋습니다. 문자열을 사용해야 하는 경우 StringBuffer를 사용하여 toString()을 호출하여 문자열로 변환할 수 있습니다.

public static void main(String[] args) {
         String a="";
         long begin=System.currentTimeMillis();
         for (int i = 0; i <10000; i++) {
             a+=i;
         }
         long end=System.currentTimeMillis();
         System.out.println("String运行时间:"+(end-begin));
         System.out.println("-----------------");
         StringBuffer b=new StringBuffer();
         long begin2=System.currentTimeMillis();
         for (int i = 0; i <10000; i++) {
             b.append(i);
         }
         long end2=System.currentTimeMillis();
         System.out.println("StringBuffer运行时间:"+(end2-begin2));
     }
로그인 후 복사

실행 후 결과는

문자열 실행 시간: 164593
-----------------<입니다. 🎜 >StringBuffer 실행 시간: 31

그리고 String에는 포함 메소드가 있지만 StringBuffer에는 없습니다. 여기서는 contain 메소드

 public static void main(String[] args) {
         String a="abc";
         boolean str=a.contains("b");
         System.out.println(str);
     }
로그인 후 복사
실행 결과가

true

임을 기억할 수 있습니다. Java에서 StringBuffer 클래스 사용에 대한 자세한 내용은 주의하세요. 기사를 보려면 PHP 중국어 웹사이트를 방문하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿