วีดีโอ: StringBuilder เร็วกว่าการต่อสตริงหรือไม่
2024 ผู้เขียน: Lynn Donovan | [email protected]. แก้ไขล่าสุด: 2023-12-15 23:54
1) ดิ สตริง วัตถุไม่เปลี่ยนรูปใน Java แต่ StringBuffer และ StringBuilder เป็นวัตถุที่ไม่แน่นอน 2) StringBuffer ถูกซิงโครไนซ์ในขณะที่ StringBuilder ไม่ใช่สิ่งที่ทำให้ StringBuilder เร็วกว่า สตริงบัฟเฟอร์ 3) การต่อกัน ตัวดำเนินการ "+" ถูกใช้งานภายในโดยใช้ StringBuffer หรือ StringBuilder.
ในทำนองเดียวกันอาจมีคนถามว่ารูปแบบสตริงเร็วกว่าการต่อกันหรือไม่?
สาเหตุหลักคือ สตริง . รูปแบบ () สามารถแปลได้ง่ายขึ้นด้วยข้อความที่โหลดจากไฟล์ทรัพยากรในขณะที่ การต่อกัน ไม่สามารถแปลเป็นภาษาท้องถิ่นได้โดยไม่ต้องสร้างโปรแกรมปฏิบัติการใหม่ด้วยรหัสที่แตกต่างกันสำหรับแต่ละภาษา ผลการจับเวลามีดังนี้: การต่อกัน = 265 มิลลิวินาที
นอกจากนี้ เมื่อใดที่คุณไม่ควรใช้ StringBuilder ดังนั้น ใช้ StringBuilder เมื่อคุณต้องการ ทำ การปรับเปลี่ยนหลายอย่างในสตริง ไม่ คุณจริงๆ ควรใช้ StringBuilder หากคุณเชื่อมสตริงขนาดใหญ่หรือคุณมีการต่อกันจำนวนมาก เช่น วนซ้ำ ฉันโดยทั่วไป ใช้ตัวสร้างสตริง สำหรับบล็อกของรหัสใด ๆ ที่จะส่งผลให้มีการต่อสายอักขระสามตัวขึ้นไป
ในทำนองเดียวกันสตริงใดเร็วกว่าหรือ StringBuilder
วัตถุของ สตริง ไม่เปลี่ยนรูปและวัตถุของ StringBuffer และ StringBuilder เปลี่ยนแปลงได้ StringBuffer และ StringBuilder มีความคล้ายคลึง แต่ StringBuilder เป็น เร็วขึ้น และต้องการมากกว่า StringBuffer สำหรับโปรแกรมเธรดเดียว หากต้องการความปลอดภัยของเธรด ระบบจะใช้ StringBuffer
โปรแกรมเมอร์จะใช้ string กับ StringBuilder เมื่อใด
เมื่อไรจะ ใช้ อันไหน: ถ้า a สตริง จะคงที่ตลอดโปรแกรม ดังนั้น ใช้สตริง คลาสวัตถุเพราะ a สตริง วัตถุไม่เปลี่ยนรูป ถ้า สตริงสามารถ เปลี่ยน (ตัวอย่าง: ตรรกะมากมาย และ การดำเนินงานในการก่อสร้าง สตริง ) แล้ว โดยใช้ NS StringBuilder เป็นตัวเลือกที่ดีที่สุด
แนะนำ:
ผนวก StringBuilder ทำงานอย่างไร
ตัวสร้างสตริง ผนวก (String str) วิธีการผนวกสตริงที่ระบุกับลำดับอักขระนี้ อักขระของอาร์กิวเมนต์ String ถูกต่อท้ายตามลำดับ โดยเพิ่มความยาวของลำดับนี้ด้วยความยาวของอาร์กิวเมนต์
ตรวจสอบ StringBuilder ว่าว่างเปล่าหรือไม่ใน C #?
วิธีความยาวของคลาส StringBuilder หรือ StringBuffer ส่งคืนความยาวของลำดับของอักขระที่มีอยู่ในปัจจุบัน ดังที่คุณเห็นในตัวอย่าง หากต้องการตรวจสอบว่า StringBuilder ว่างเปล่าหรือไม่ ให้หาความยาวของอ็อบเจ็กต์ StringBuilder หากความยาวเป็น 0 แสดงว่าว่างเปล่า มิฉะนั้นจะไม่ใช่
StringBuffer หรือ StringBuilder ไหนดีกว่ากัน?
String นั้นเปลี่ยนไม่ได้ในขณะที่ StringBuffer และ StringBuider เป็นคลาสที่ไม่แน่นอน StringBuffer นั้นปลอดภัยสำหรับเธรดและซิงโครไนซ์ในขณะที่ StringBuilder ไม่ใช่ นั่นเป็นสาเหตุที่ StringBuilder เร็วกว่า StringBuffer ตัวดำเนินการ String concat + ภายในใช้คลาส StringBuffer หรือ StringBuilder
StringBuilder สามารถเป็นโมฆะได้หรือไม่?
หมายความว่าไม่มีอักขระใน StringBuilder null หมายความว่าไม่มีวัตถุ StringBuilder เลย ตัวแปรจะเป็นโมฆะก็ต่อเมื่อมีประเภทการอ้างอิง (เช่น String, StringBuilder, Set เป็น thumbrule: all ประเภทตัวพิมพ์ใหญ่) และยังไม่ได้เริ่มต้นหรือถูกกำหนดให้เป็น null อย่างชัดเจน
ผนวกใน StringBuilder คืออะไร?
StringBuilder ต่อท้าย (บูลีน a): java.js แลง ตัวสร้างสตริง append(boolean a) เป็นวิธีการ inbuilt ใน Java ซึ่งใช้ในการผนวกการแสดงสตริงของอาร์กิวเมนต์บูลีนไปยังลำดับที่กำหนด คืนค่า: วิธีการส่งกลับการอ้างอิงไปยังวัตถุนี้