>  기사  >  Java  >  java_String과 StringBuffer의 차이점 분석

java_String과 StringBuffer의 차이점 분석

巴扎黑
巴扎黑원래의
2017-05-21 14:18:031391검색

JAVA 플랫폼은 문자열, 즉 여러 문자가 포함된 문자 데이터를 저장하고 연산할 수 있는 String과 StringBuffer라는 두 가지 클래스를 제공합니다. String 클래스는 수치적으로 변경할 수 없는 문자열을 제공합니다.

이 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에는 없습니다. 포함은 포함을 의미합니다.

코드는 다음과 같습니다.

 public static void main(String[] args) {
         String a="abc";
         boolean str=a.contains("b");
         System.out.println(str);
     }

실행 결과는

true

입니다.

위 내용은 java_String과 StringBuffer의 차이점 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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