Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

เราจะเปรียบเทียบ StringBuilder กับ StringBuffer ใน Java ได้อย่างไร


StringBuffer โดยทั่วไปวัตถุจะปลอดภัยที่จะใช้ในสภาพแวดล้อมแบบมัลติเธรด โดยที่หลายเธรดอาจพยายามเข้าถึง StringBuffer . เดียวกัน วัตถุในเวลาเดียวกัน StringBuilder เป็นการแทนที่สำหรับ Stread-safe StringBuffe คลาสและทำงานได้เร็วกว่ามากเนื่องจากไม่มี ซิงโครไนซ์ วิธีการ หากเราดำเนินการสตริงจำนวนมากในเธรดเดียว เราก็จะได้รับ ประสิทธิภาพ . มากมาย เมื่อใช้คลาสนี้

ตัวอย่าง

public class CompareBuilderwithBufferTest {
   public static void main(String []args) {
      stringBufferTest();
      stringBuilderTest();
   }
   public static void stringBufferTest() {
      long startTime = System.nanoTime();
      StringBuffer sb = new StringBuffer();
      for (int i=0; i < 1000; i++) {
         sb.append((char) 'a');
      }
      System.out.println("StringBuffer test: " + (System.nanoTime() - startTime));
   }
   public static void stringBuilderTest() {
      long startTime = System.nanoTime();
      StringBuilder sb = new StringBuilder();
      for (int i=0; i < 1000; i++) {
         sb.append((char) 'a');
      }
      System.out.println("StringBuilder test: " + (System.nanoTime() - startTime));
   }
}

ผลลัพธ์

StringBuffer test: 192595
StringBuilder test: 85733