มาวิเคราะห์การเชื่อมต่อสตริงด้านล่าง
1. สตรีม
เปิดซอร์สโค้ดของสตริงดังที่แสดงในรูป
คุณจะพบว่าค่าอักขระที่เก็บสตริงเป็นค่าคงที่สุดท้าย เมื่อดูที่วิธีการก่อสร้างของสตริงเราพบว่าค่าของสตริงถูกกำหนดโดยวิธีการก่อสร้าง จำเป็นต้องอธิบายคำหลักสุดท้ายที่นี่
แอตทริบิวต์ที่แก้ไขโดยสุดท้ายคือค่าคงที่ (ไม่สามารถเปลี่ยนแปลงค่าได้) มันได้รับการกำหนดค่าในขณะที่ประกาศหรือกำหนดค่าในวิธีการก่อสร้าง เมื่อได้รับมอบหมายจะไม่สามารถเปลี่ยนแปลงได้
ดังนั้นการใช้สตริงเพื่อใช้การเย็บสตริง เนื่องจากค่าของสตริงไม่สามารถเปลี่ยนแปลงได้สตริงใหม่จะต้องสร้างขึ้นสำหรับการเย็บแต่ละครั้งเพื่อจัดเก็บสตริงใหม่ ดังนั้นการใช้สตริงเพื่อจัดการการเย็บสตริงจะมีประสิทธิภาพต่ำมาก
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับสตริงโปรดดูบล็อก: http://longpo.iteye.com/blog/2199493
2.StringBuffer
คลาส StringBuffer สืบทอดคลาสนามธรรม AbstractStringBuilder และเปิดซอร์สโค้ด AbstractStringBuilder
มาดูวิธีการโอเวอร์โหลดสามวิธี
พบว่าตัวสร้างทั้งหมดของคลาสแม่ AbstractStringBuilder เรียกว่า
พบว่าอาร์เรย์ถ่านที่ StringBuffer เก็บข้อมูลไม่ได้เป็นประเภทสุดท้ายซึ่งหมายความว่าสามารถเปลี่ยนแปลงได้และสตริงที่สร้างขึ้นยังคงมีพื้นที่ว่างเพื่อแยกสาย
ใน StringBuffer เราใช้ฟังก์ชั่นผนวก () เพื่อแยกสตริง เราสามารถคิดได้ว่าถึงแม้ว่าจะยังคงมีอยู่ในอาร์เรย์ถ่าน แต่ก็ไม่เพียงพอที่จะต่อมันได้ตลอดเวลา ดังนั้นจึงจำเป็นต้องดูที่การใช้งานซอร์สโค้ดของฟังก์ชันภาคผนวก
ตรวจสอบวิธีการผนวกของคลาสแม่ AbstractStringBuilder
เมื่ออาร์เรย์ค่าไม่สามารถความจุได้เพียงพออาร์เรย์ค่าใหม่จะถูกสร้างขึ้นเพื่อจัดเก็บสตริง ณ จุดนี้คุณควรเข้าใจหลักการของ StringBuffer String splicing เมื่ออาร์เรย์ค่าถ่านไม่เพียงพออาร์เรย์ความจุที่ใหญ่กว่าจะถูกสร้างขึ้นเพื่อจัดเก็บ ประสิทธิภาพสูงกว่าสตริงอย่างมีนัยสำคัญ
3. StringBuilder
StringBuilder และ StringBuffer เป็นสองพี่น้องและการใช้งานของพวกเขานั้นเหมือนกัน ความแตกต่างคือ StringBuffer ถูกซิงโครไนซ์และเธรดที่ปลอดภัยในขณะที่ StringBuilder ไม่รับประกันการซิงโครไนซ์และเธรดที่ปลอดภัย
StringBuilder เร็วกว่า StringBuffer ในการใช้งานส่วนใหญ่และเมื่อมีการเข้าถึงบัฟเฟอร์สตริงโดยเธรดเดียวขอแนะนำให้ใช้ StringBuilder ก่อน
ด้านบนเป็นตัวเลือกสตริง Java ที่แนะนำโดยตัวแก้ไข ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับคุณทันเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!