Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

เมื่อไหร่ควรใช้ StringBuffer/StringBuilder แทน String ใน Java

  • ออบเจ็กต์ของคลาส String เป็น immutable (ไม่เปลี่ยนแปลงได้) ในขณะที่ออบเจ็กต์ของ StringBuffer และ StringBuilder เป็น mutable (เปลี่ยนแปลงได้)
  • StringBuffer เป็น synchronized (ปลอดภัยต่อเธรด) ในขณะที่ StringBuilder ไม่ได้ synchronized
  • ตัวดำเนินการต่อสตริง "+" ถูกนำไปใช้ภายในโดยใช้ StringBuffer หรือ StringBuilder
  • หากค่าของออบเจ็กต์ไม่เปลี่ยนแปลง ให้ใช้คลาส String เพราะออบเจ็กต์ String เป็น immutable
  • หากค่าของออบเจ็กต์สามารถเปลี่ยนแปลงได้และจะถูกเข้าถึงจากเธรดเดียว ให้ใช้ StringBuilder เพราะ StringBuilder เป็น unsynchronized
  • หากค่าของออบเจ็กต์สามารถเปลี่ยนแปลงได้และจะถูกแก้ไขโดยหลายเธรด ให้ใช้ StringBuffer เพราะ StringBuffer เป็น synchronized