java_String과 StringBuffer의 차이점 분석

2325 단어 StringStringBuffer
이 StringBuffer 클래스에서 제공하는 문자열을 수정합니다.문자 데이터가 바뀔 줄 알았을 때 StringBuffer를 사용할 수 있습니다.전형적으로, 문자의 데이터를 동적 구조하기 위해 StringBuffers를 사용할 수 있다.
자바에는 문자의 조작을 담당하는 세 가지 클래스가 있습니다.
1. Character는 단일 문자 작업을 수행합니다.
2. String은 일련의 문자를 조작합니다.불가변 클래스.
3. StringBuffer도 일련의 문자를 조작하지만 가변 클래스입니다.
String: 객체가 원래 유형이 아닙니다.변경할 수 없는 객체의 값을 수정할 수 없습니다.이미 존재하는 String 객체에 대한 수정은 새 객체를 다시 만들고 새 값을 저장합니다.String은 final 클래스로 상속될 수 없습니다.
StringBuffer: 변경할 때 String처럼 다시 만들지 않는 가변 대상입니다. 구조 함수를 통해서만 만들 수 있습니다. StringBuffer sb = new StringBuffer ().note: 지불 기호를 통해 그에게 지불할 수 없습니다.sb = "welcome to here!";//error 대상이 설정되면 메모리에 메모리 공간을 분배하고 null을 저장합니다.StringBuffer에 값을 지불할 때 append 방법을 사용할 수 있습니다.sb.append("hello");
다음은 인터넷에서 흔히 볼 수 있는 발췌문입니다.
주소는 변경할 수 없고 길이와 내용은 변경할 수 있습니다.append () 방법은 추가됩니다. 미리 남겨진 메모리를 초과하면 메모리가 배로 증가합니다.
효율성 비교: StringBuffer가 String보다 높습니다.StringBuffer는 한 객체에 대해서만 작업할 수 있도록 예약된 공간이 있기 때문입니다.String은 수정될 수 없으며, 반복적으로 대상을 만들어서 수정할 수 있습니다.문자열을 추가, 교체, 수정, 삽입, 삭제하는 일이 잦다면 StringBuffer를 사용하는 것이 좋습니다.String을 사용해야 한다면 StringBuffer를 사용하여 toString()을 호출하여 String으로 변환하면 됩니다.

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));
     }
내 기계는 비교적 쓰레기인데, 실행해 보니 결과는
String 실행 시간: 164593------------------StringBuffer 실행 시간: 31
그리고 String에는 contains 방법이 있지만 String Buffer에는 없습니다.contains는 포함된다는 뜻입니다. 여기서 contains 방법을 회상할 수 있습니다

 public static void main(String[] args) {
         String a="abc";
         boolean str=a.contains("b");
         System.out.println(str);
     }
실행 결과는 다음과 같습니다.
true

좋은 웹페이지 즐겨찾기