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

Anonim

StringBuffer vs. StringBuilder

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

StringBuffer คืออะไร?

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

StringBuilder คืออะไร?

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

ความแตกต่างระหว่าง StringBuffer กับ StringBuilder คืออะไร?

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