Гол ялгаа – Java дахь String ба StringBuffer ба StringBuilder
String, StringBuffer болон String Builder нь Java хэл дээрх ангиуд юм. String нь Java програмчлалд өргөн хэрэглэгддэг. Нэгэнт String объект үүсгэгдсэн бол тэдгээрийг өөрчлөх боломжгүй. String-д өөрчлөлт орох бүрд энэ нь шинэ мөр үүсгэдэг. Энэ нь одоо байгаа String-тэй холбогч байсан ч шинэ мөр үүсгэдэг. Энэ нь санах ойн алдагдалд хүргэдэг. Java дахь StringBuffer болон StringBuilder ангиуд нь String-г өөрчлөхөд ашиглагддаг. Java дахь String, StringBuffer болон StringBuilder хоёрын гол ялгаа нь String нь тэмдэгтүүдийн дараалал болох String төрлийн объект үүсгэх анги, StringBuffer нь урсгалын аюулгүй байдлыг хангадаг мөрүүдийг өөрчлөхөд хэрэглэгддэг анги бөгөөд StringBuilder нь урсгалын аюулгүй байдлыг хангадаггүй мөрүүдийг өөрчлөхөд ашигладаг анги.
Java-д String гэж юу вэ?
String анги java.lang багцад байна. Програмист нь String үүсгэх болгондоо String төрлийн объект болдог. Мөр нь объектыг үүсгэсний дараа өөрчлөгдөх боломжгүй гэсэн утгатай. Integer, Byte, Float, Double зэрэг боодлын классуудыг ашиглан үүсгэсэн объектууд мөн өөрчлөгддөггүй. Мөрийн литерал нь давхар хашилтанд бичигдсэн байдаг. жишээ нь "Сайн уу ертөнц". Стринг literal үүсгэх бүрт Java Virtual Machine (JVM) нь String тогтмол санг шалгадаг. Хэрэв String байгаа бол String тогтмол санд хамаарах лавлагаа буцаана. Хэрэв энэ нь шинэ String бол тухайн объектыг String тогтмол санд үүсгэнэ.
Зураг 01: String, StringBuffer болон StringBuilder ашигладаг Java програм
Доорх кодын хэсгийг үзнэ үү.
Мөр s1=“Сайн уу”;
s1=s1 + "Дэлхий";
System.out.println(s1);
Эхний мэдэгдэлд s1 нь String тогтмол сан дахь "Сайн уу"-г хэлж байна. Хоёрдахь мэдэгдэлд JVM нь одоо байгаа мөрийг өөрчилдөггүй. Үүний оронд энэ нь "Сайн уу Дэлхий" гэсэн шинэ мөрийг үүсгэдэг бөгөөд s1 нь одоо тэр шинэ мөрийг хэлж байна. Гарч буй "Сайн уу" объект нь String тогтмол санд байсаар байна.
Хэрэв код байвал
String s1="Сайн уу";
Мөр s2=s1;
s1, s2 хоёулаа "Сайн уу" гэсэн String объектыг хэлэх болно.
Java дахь StringBuffer гэж юу вэ?
StringBuffer анги нь String объектуудыг хувиргах чадвартай болгоход ашиглагддаг. Тиймээс эдгээр объектуудыг өөрчлөх боломжтой. StringBuffer нь дөрвөн бүтээгчийг тодорхойлдог. StringBuffer(), StringBuffer(int хэмжээ), StringBuffer(String str), StringBuffer (charSequence ch)
Доорх кодыг үзнэ үү, StringBuffer s1=шинэ StringBuffer("Сайн уу");
s1.append("Дэлхийн");
System.out.println(s1);
1-р мэдэгдэлд s1 нь бөөгнөрсөн "Сайн уу" объектыг хэлж байна. Объект нь StringBuffer ашиглан бүтээгдсэн тул өөрчлөгдөх боломжтой. 2-р мэдэгдэлд "Ертөнц" нь ижил "Сайн уу" String объектод хавсаргасан байна.
StringBuffer классаар үүсгэсэн стринг объектууд санах ойг хэмнэх боломжтой. StringBuffer нь хоёр урсгал нь StringBuffer анги дахь ижил аргад нэгэн зэрэг хандаж чадахгүй тул урсгалын аюулгүй байдлыг хангадаг. Thread-ийн аюулгүй байдал нь StringBuffer-ийн гүйцэтгэлийг бууруулдаг. StringBuffer анги нь append(), insert(), reverse(), replace() зэрэг аргуудыг агуулна.
Java-д StringBuilder гэж юу вэ?
StringBuilder анги нь String объектуудыг хувиргах чадвартай болгоход хэрэглэгддэг. Тиймээс эдгээр объектуудыг өөрчлөх боломжтой. Үйл ажиллагаа нь StringBuffer-тэй төстэй боловч энэ нь урсгалын аюулгүй байдлыг хангадаггүй. StringBuilder нь StringBuilder(), StringBuilder(int size), StringBuilder(String str) зэрэг бүтээгчидтэй.
Доорх кодыг үзнэ үү.
StringBuilder s1=шинэ StringBuilder("Сайн уу");
s1.append("Дэлхийн");
System.out.println(s1);
1-р мэдэгдэлд s1 нь бөөгнөрсөн "Сайн уу" объектыг хэлж байна. Объект нь StringBuilder ашиглан бүтээгдсэн тул өөрчлөгдөх боломжтой. 2-р мэдэгдэлд "Ертөнц" нь ижил "Сайн уу" String объектод хавсаргасан болно. Бүрэн шинэ String объект үүсгэгдээгүй байна.
StringBuilder ангиар үүсгэсэн стринг объектууд нь санах ойг хэмнэх боломжтой. StringBuffer-ээс ялгаатай нь StringBuilder нь урсгалын аюулгүй байдлыг хангадаггүй, учир нь хоёр урсгал нь StringBuilder анги дахь ижил аргад нэгэн зэрэг хандаж чаддаг. StringBuilder анги нь append(), insert(), урвуу(), солих() зэрэг аргуудыг агуулдаг.
Java дахь String, StringBuffer болон StringBuilder хоёрын ижил төстэй байдал юу вэ?
Бүгдийг мөр үүсгэхэд ашиглаж болно
Java дахь String StringBuffer болон StringBuilder хоёрын ялгаа юу вэ?
String vs StringBuffer vs StringBuilder |
|
Мөр | Мөр нь тэмдэгтүүдийн дараалал болох String төрлийн объект үүсгэхэд хэрэглэгддэг Java анги юм. |
StringBuffer | StringBuffer нь Java анги бөгөөд String объектуудыг үүсгэхэд ашигладаг бөгөөд үүнийг урсгалын аюулгүй байдлын тусламжтайгаар өөрчлөх боломжтой. |
StringBuilder | StringBuilder нь хэлхээний аюулгүй байдалгүйгээр өөрчлөх боломжтой мөрт объект үүсгэхэд хэрэглэгддэг анги юм. |
Хувиргах чадвар | |
Мөр | Мөр нь хувиршгүй анги юм. |
StringBuffer | StringBuffer нь өөрчлөгдөх боломжтой анги юм. |
StringBuilder | StringBuilder нь өөрчлөгдөх боломжтой анги юм. |
Утасны аюулгүй байдал | |
Мөр | Мөрийн аргууд нь хэлхээнд аюулгүй. |
StringBuffer | StringBuffer-ийн аргууд нь хэлхээнд аюулгүй бөгөөд синхрончлогдсон. |
StringBuilder | StringBuilder-ийн аргууд нь урсгалтай биш бөгөөд синхрончлогдоогүй. |
Гүйцэтгэл | |
Мөр | Мөр хурдан байна. |
StringBuffer | StringBuffer удаан байна. |
StringBuilder | StringBuilder хурдан. |
Хураангуй – Java дахь String ба StringBuffer ба StringBuilder
String, StringBuffer болон StringBuilder нь адилхан боловч өөр өөр утгатай. Эдгээр нь бүгд Java ангиуд юм. Java дахь String, StringBuffer болон StringBuilder хоёрын ялгаа нь String нь тэмдэгтүүдийн багц болох String төрлийн объект үүсгэх анги, StringBuffer нь Strings-ийг өөрчлөх, урсгалын аюулгүй байдлыг хангахад хэрэглэгддэг анги, харин StringBuilder нь урсгалын аюулгүй байдлыг хангаагүй мөрүүдийг өөрчлөхөд ашигладаг анги.
PDF String ба StringBuffer ба StringBuilder-г Java дээр татаж авах
Та энэ нийтлэлийн PDF хувилбарыг татаж аваад офлайн зорилгоор ашиглах боломжтой. Java дахь String StringBuffer болон StringBuilder хоёрын ялгаа PDF хувилбарыг эндээс татаж авна уу.