StringBuffer болон StringBuilder хоёрын ялгаа

StringBuffer болон StringBuilder хоёрын ялгаа
StringBuffer болон StringBuilder хоёрын ялгаа

Видео: StringBuffer болон StringBuilder хоёрын ялгаа

Видео: StringBuffer болон StringBuilder хоёрын ялгаа
Видео: Finals LAB MOBAP Week3 2024, Арваннэгдүгээр
Anonim

StringBuffer vs StringBuilder

Java бол маш алдартай объект хандалтат хэл юм. Java хэл дээр String анги нь өөрчлөх боломжгүй тэмдэгтүүдийн дарааллыг (нэг удаа эхлүүлсэн) агуулна. Өөрөөр хэлбэл, Java програмчлалын хэл нь хоёр төрлийн хувьсах тэмдэгтүүдийн дарааллыг өгдөг. Өөрөөр хэлбэл, программистууд тодорхой String-г өөрчлөх шаардлагатай үед (эхлүүлсний дараа) String классын оронд StringBuffer анги эсвэл StringBuilder анги ашиглах хэрэгтэй болно. StringBuffer нь JDK 1.0-д, StringBuilder анги нь JDK 1.5-д StringBuffer классыг орлох (нэг урсгалтай орчинд) хэрэглэгдэх болсон.

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 анги нь StringBuffer ангитай яг адилхан функцтэй append() болон insert() аргуудыг өгдөг.

StringBuffer болон StringBuilder хоёрын ялгаа нь юу вэ?

Хэдийгээр StringBuilder болон StringBuffer ангиудыг Java хэл дээрх хувьсах тэмдэгтүүдийн дарааллаар ашиглаж болох ч үндсэн ялгаа байдаг. StringBuffer ангиас ялгаатай нь StringBuilder анги нь thread-д аюулгүй биш бөгөөд синхрончлолыг хангадаггүй. Иймд StringBuilder анги нь StringBuffer ангиас хамаагүй хурдан байх болно (хэвийн нөхцөлд).

Зөвлөмж болгож буй: