ความแตกต่างระหว่าง StringBuilder และ StringBuffer (พร้อมตาราง)

สารบัญ:

Anonim

StringBuilder ใช้เพื่อสร้างสตริงที่ผู้ใช้สามารถเปลี่ยนแปลงสตริงได้ระหว่างรันไทม์ StringBuffer มาจากคำว่า "สตริง" ซึ่งหมายถึงลำดับของอักขระ และ "บัฟเฟอร์" ซึ่งเป็นที่เก็บข้อมูล StringBuffer สามารถเก็บได้มากเท่าที่ Java Virtual Machine (JVM) สามารถรองรับได้

StringBuilder เทียบกับ StringBuffer

ความแตกต่างระหว่าง StringBuilder และ StringBuffer คือการทำงานของ StringBuilder ทำงานได้เร็วกว่า StringBuffer StringBuilder ไม่ปลอดภัยสำหรับเธรด แต่ StringBuffer นั้นปลอดภัยสำหรับเธรด ประสิทธิภาพสูงใน StringBuilder แต่ต่ำใน StringBuffer เธรดไม่รอใน StringBuilder แต่เธรดรอใน StringBuffer StringBuilder มาหลังจาก StringBuffer

StringBuilder เป็นคลาสที่มีประโยชน์ซึ่งออกแบบมาเพื่อสร้างสตริงได้ง่ายขึ้น ใช้สำหรับสิ่งต่างๆ เช่น การสร้างข้อความ ข้อความแสดงข้อผิดพลาด และข้อมูลการดีบัก ชั้นเรียนดำเนินการดังต่อไปนี้ อินเทอร์เฟซ NET Framework Concatenate และมีตัวสร้างสองตัว: ตัวหนึ่งใช้อาร์เรย์สตริงเป็นอาร์กิวเมนต์และอีกตัวรับอาร์กิวเมนต์ของประเภทวัตถุ

StringBuffer เป็นประเภทของสตริงที่สนับสนุนการเพิ่มและการลบอักขระที่อยู่ตรงกลางของบัฟเฟอร์ เป็นอาร์เรย์ของอักขระที่น่ายกย่องพร้อมฟังก์ชันเพิ่มเติมบางอย่าง โปรแกรมเมอร์ไม่จำเป็นต้องจัดสรรหน่วยความจำสำหรับสตริง และไม่จำเป็นต้องกังวลเกี่ยวกับการเขียนสตริงในบางจุด

ตารางเปรียบเทียบระหว่าง Stringbuilder และ StringBuffer

พารามิเตอร์ของการเปรียบเทียบ

StringBuilder

StringBuffer

เกลียวที่ปลอดภัย ไม่ ใช่
ซิงโครไนซ์ ไม่ ใช่
แบบอย่าง Java 1.5 Java 1.0
การทำงาน เร็ว ช้า
ประสิทธิภาพ สูง ต่ำ
เกลียว ไม่ต้องรอ รอ

StringBuilder คืออะไร?

StringBuilder เป็นโครงสร้างที่ช่วยให้นักพัฒนาสามารถสร้างสตริง (ลำดับของอักขระ) ได้อย่างมีประสิทธิภาพ คล้ายกับโครงสร้างเช่นคลาส StringBuilder ใน C #, JavaScript Array วิธีการเข้าร่วม () หรือคลาส Java StringJoiner ใช้เพื่อลดการจัดสรรหน่วยความจำและโอเวอร์เฮดการรวบรวมขยะ

StringBuilder สามารถแทนที่การใช้งานส่วนใหญ่ประเภทข้อมูล String ดั้งเดิม กรณีการใช้งานหลักสำหรับ StringBuilder คือเมื่อสร้างสตริงที่ยาวจากสตริงที่เล็กกว่าหลายสตริง เพื่อหลีกเลี่ยงการสร้างสตริงขนาดเล็กจำนวนมาก อย่างไรก็ตาม การใช้ StringBuilder เพื่อเชื่อมสตริงที่รู้จักทั้งหมด StringBuilder ไม่ปลอดภัยสำหรับเธรด

เมื่อพิจารณาว่าคลาสนี้มีประโยชน์เพียงใด จึงไม่น่าแปลกใจที่คลาสนี้ไม่มีคุณสมบัติหรือวิธีการใดๆ ที่เป็นของตัวเองเพื่อให้คุณควบคุมรูปแบบของสตริงผลลัพธ์ได้ StringBuilder เป็นคลาสง่าย ๆ ที่ให้คุณสร้างสตริงได้อย่างง่ายดาย มันเหมือนกับก้อนหิมะ แต่มีความสามารถในการเพิ่มส่วนย่อยของข้อความได้ทุกที่

StringBuilder ซึ่งสามารถใช้เพื่อปรับปรุงประสิทธิภาพของการดำเนินการต่อสตริง คลาส StringBuilder ไม่สามารถเปลี่ยนรูปแบบได้ ซึ่งหมายความว่าวัตถุนี้สามารถแก้ไขได้ด้วยวิธีการระดับล่าง เช่น Append(), Insert() และ Replace()

StringBuffer คืออะไร?

StringBuffer สามารถเปลี่ยน เพิ่ม และลบอักขระออกจากบัฟเฟอร์ได้ บัฟเฟอร์สตริงมีประโยชน์สำหรับงานต่างๆ เช่น การคัดลอกสตริงลงในไฟล์หรือแปลงเป็นตัวพิมพ์ใหญ่ สามารถใช้แทนที่การจัดสรรหน่วยความจำแบบไดนามิกได้บ่อยครั้ง และสามารถปรับปรุงประสิทธิภาพของโค้ดของคุณได้ StringBuffer เป็นโครงสร้างข้อมูลที่ใช้ในการเก็บลำดับของอักขระ

StringBuffer มาจากคำว่า "สตริง" ซึ่งหมายถึงลำดับของอักขระ และ "บัฟเฟอร์" ซึ่งเป็นที่เก็บข้อมูล StringBuffer สามารถเก็บได้มากเท่าที่ Java Virtual Machine (JVM) สามารถรองรับได้

StringBuffer ถูกสร้างขึ้นด้วย Constructor ซึ่งเป็น StringBuffer ใหม่ (ความยาว) ความยาวหมายถึงจำนวนขององค์ประกอบที่จะเก็บไว้ในบัฟเฟอร์ และจำเป็นต้องระบุก่อนที่จะสร้างวัตถุ StringBuilder นั้นมาจาก Java 1.5 แต่ StringBuffer นั้นมาจาก Java 1.0

เมื่อพิจารณาว่าคลาสนี้มีประโยชน์เพียงใด จึงไม่น่าแปลกใจที่คลาสนี้ไม่มีคุณสมบัติหรือวิธีการใดๆ ที่เป็นของตัวเองเพื่อให้คุณควบคุมรูปแบบของสตริงผลลัพธ์ได้ StringBuffer ทำงานช้าลงเล็กน้อย

ความแตกต่างหลักระหว่าง StringBuilder และ StringBuffer

บทสรุป

StringBuffer สามารถเปลี่ยน เพิ่ม และลบอักขระออกจากบัฟเฟอร์ได้ บัฟเฟอร์สตริงมีประโยชน์สำหรับงานต่างๆ เช่น การคัดลอกสตริงลงในไฟล์หรือแปลงเป็นตัวพิมพ์ใหญ่ StringBuilder นั้นมาจาก Java 1.5 แต่ StringBuffer นั้นมาจาก Java 1.0 สามารถใช้แทนที่การจัดสรรหน่วยความจำแบบไดนามิกได้บ่อยครั้ง และสามารถปรับปรุงประสิทธิภาพของโค้ดของคุณได้ StringBuffer เป็นโครงสร้างข้อมูลที่ใช้ในการเก็บลำดับของอักขระ

StringBuffer มาจากคำว่า "สตริง" ซึ่งหมายถึงลำดับของอักขระ และ "บัฟเฟอร์" ซึ่งเป็นที่เก็บข้อมูล StringBuffer สามารถเก็บได้มากเท่าที่ Java Virtual Machine (JVM) สามารถรองรับได้

StringBuilder เป็นคลาสง่าย ๆ ที่ให้คุณสร้างสตริงได้อย่างง่ายดาย มันเหมือนกับก้อนหิมะ แต่มีความสามารถในการเพิ่มส่วนย่อยของข้อความได้ทุกที่ StringBuilder ซึ่งสามารถใช้เพื่อปรับปรุงประสิทธิภาพของการดำเนินการต่อสตริง

StringBuffer ถูกสร้างขึ้นด้วย Constructor ซึ่งเป็น StringBuffer ใหม่ (ความยาว) ความยาวหมายถึงจำนวนขององค์ประกอบที่จะเก็บไว้ในบัฟเฟอร์ และจำเป็นต้องระบุก่อนที่จะสร้างวัตถุ StringBuilder นั้นมาจาก Java 1.5 แต่ StringBuffer นั้นมาจาก Java 1.0

คลาส StringBuilder เป็นอ็อบเจ็กต์ที่สร้างขึ้นใน.NET framework ให้การจัดสรรหน่วยความจำตามลำดับที่รวดเร็วและมีประสิทธิภาพ StringBuilder ใช้เพื่อสร้างสตริงที่ผู้ใช้สามารถเปลี่ยนแปลงสตริงได้ระหว่างรันไทม์ คลาส StringBuilder ไม่สามารถเปลี่ยนรูปแบบได้ ซึ่งหมายความว่าวัตถุนี้สามารถแก้ไขได้ด้วยวิธีการระดับล่าง เช่น Append(), Insert() และ Replace()

ความแตกต่างระหว่าง StringBuilder และ StringBuffer (พร้อมตาราง)