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

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

วีดีโอ: ความแตกต่างระหว่าง StringBuffer และ StringBuilder

วีดีโอ: ความแตกต่างระหว่าง StringBuffer และ StringBuilder
วีดีโอ: ทุนนิยม vs สังคมนิยม ระบอบเศรษฐกิจแบบไหนดีกว่ากัน ?! | Money Matters EP.108 2024, กรกฎาคม
Anonim

StringBuffer กับ StringBuilder

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

สตริงบัฟเฟอร์คืออะไร

แนะนำคลาส StringBuffer ใน JDK 1.0 คลาส StringBuffer เป็นของแพ็คเกจ java.lang และสืบทอดมาจาก java.lang.object ทั่วไป โปรแกรมเมอร์ไม่สามารถขยายเพิ่มเติมได้เนื่องจากเป็นคลาสสุดท้าย คลาส StringBuffer ใช้อินเตอร์เฟส Serializable, Appendable และ CharSequience วัตถุของคลาส StringBuffer สามารถเก็บลำดับของอักขระที่ไม่แน่นอนและเธรดที่ปลอดภัย นั่นหมายความว่า มันคล้ายกับวัตถุ String มาก แต่ลำดับของอักขระ (ความยาวและเนื้อหา) สามารถเปลี่ยนแปลงได้ตลอดเวลาหลังจากเริ่มต้นวัตถุ StringBuffer อย่างไรก็ตาม ควรทำโดยใช้วิธีการเฉพาะของคลาส StringBuffer มีการดำเนินการหลักสองประการในคลาส StringBuffer มีให้โดยวิธี append() และ insert() วิธีการเหล่านี้มีการใช้งานมากเกินไป ดังนั้นจึงสามารถรับข้อมูลประเภทใดก็ได้ เช่น จำนวนเต็มและจำนวนเต็ม ทั้งสองวิธีในขั้นแรกแปลงอินพุตใดๆ ให้เป็นสตริง จากนั้นจึงเพิ่ม (ผนวกหรือแทรก) อักขระของสตริงที่สอดคล้องกันไปยังอ็อบเจ็กต์ Stribbuffer ที่มีอยู่วิธีการ append() จะเพิ่มสตริงที่แปลงแล้วไปยังจุดสิ้นสุดของวัตถุ StringBuffer ที่มีอยู่ ในขณะที่เมธอด insert() จะเพิ่มอักขระอินพุตไปยังจุดแทรกที่ระบุ

StringBuilder คืออะไร

แนะนำคลาส StringBuilder ใน JDK 1.5 StringBuilder API นั้นคล้ายกับ StringBuffer API มาก อันที่จริง คลาส StringBuilder ถูกนำมาใช้แทนคลาส StringBuffer (สำหรับแอปพลิเคชันเธรดเดียว) คลาส StringBuilder เป็นของแพ็คเกจ java.lang และสืบทอดมาจาก java.lang.object ทั่วไป เป็นคลาสสุดท้าย ดังนั้นโปรแกรมเมอร์จึงไม่สามารถขยายคลาสได้ คลาส StringBuilder ใช้อินเตอร์เฟส Serializable, Appendable และ CharSequience อ็อบเจ็กต์ของคลาส StringBuilder สามารถเก็บลำดับของอักขระที่เปลี่ยนแปลงได้ แต่ไม่ปลอดภัยสำหรับเธรด นั่นหมายความว่า มันคล้ายกับวัตถุ String มาก แต่สามารถเปลี่ยนสตริงได้ตลอดเวลา แต่คลาส StringBuilder ไม่มีการซิงโครไนซ์ ดังนั้นจึงอ้างว่าเร็วกว่าการใช้คลาส StringBufferคลาส StringBuilder จัดเตรียมเมธอด append() และ insert() ที่มีฟังก์ชันการทำงานคล้ายกันทุกประการกับคลาส StringBuffer

StringBuffer และ StringBuilder ต่างกันอย่างไร

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

แนะนำ: