Негизги айырмасы – String менен StringBuffer жана Javaдагы StringBuilder
String, StringBuffer жана String Builder Java тилиндеги класстар. String Java программалоодо кеңири колдонулат. String объекти түзүлгөндөн кийин, аларды өзгөртүү мүмкүн эмес. Сапка өзгөрүү болгон сайын, ал жаңы Сапты түзөт. Ал учурдагы Стрге бириктирүү болсо дагы, ал жаңы Стрин түзөт. Бул эс тутумдун бошко кетишине алып келет. Javaдагы StringBuffer жана StringBuilder класстары Stringди өзгөртүү үчүн колдонулат. Javaдагы String, StringBuffer жана StringBuilder ортосундагы негизги айырма, String - бул символдордун ырааттуулугу болгон String түрүндөгү объектти түзүү үчүн класс, StringBuffer - жиптин коопсуздугун камсыз кылган саптарды өзгөртүү үчүн колдонулган класс, ал эми StringBuilder - бул жиптин коопсуздугун камсыз кылбаган саптарды өзгөртүү үчүн колдонулган класс.
Java'да String деген эмне?
String классы java.lang пакетинде. Программист Стринг түзгөн сайын, ал String түрүндөгү объект болуп саналат. Саптар объект түзүлгөндөн кийин өзгөрүлгүс мааниге ээ, аны өзгөртүүгө болбойт. Integer, Byte, Float, Double сыяктуу орогуч класстары аркылуу түзүлгөн объекттер да өзгөрүлбөйт. Сап литералы кош тырмакчага алынат. мис. "Салам дүйнө". Ар бир сап литерал түзүлгөн сайын, Java Virtual Machine (JVM) String туруктуу бассейнин текшерет. Эгерде String бар болсо, String туруктуу бассейнине шилтеме кайтарылат. Эгер ал жаңы Сап болсо, ал объект String туруктуу бассейнинде түзүлөт.
01-сүрөт: String, StringBuffer жана StringBuilderди колдонгон Java программасы
Төмөнкү код бөлүгүн караңыз.
String s1="Салам";
s1=s1 + "Дүйнө";
System.out.println(s1);
Биринчи билдирүүдө s1 String туруктуу бассейниндеги "Салам" дегенди билдирет. Экинчи билдирүүдө, JVM учурдагы Стрингди өзгөртпөйт. Анын ордуна, ал "Салам дүйнө" катары жаңы сапты түзөт жана s1 азыр ошол жаңы Сапка шилтеме кылууда. Чыгып жаткан "Салам" объекти дагы эле String туруктуу бассейнинде бар.
Эгер код болсо, String s1="Салам";
Сап s2=s1;
s1, s2 экөө тең "Салам" сап объектисине шилтеме кылат.
Java'да StringBuffer деген эмне?
StringBuffer классы String объекттерин өзгөрмөлүү кылуу үчүн колдонулат. Ошондуктан, ал объекттерди өзгөртүүгө болот. StringBuffer төрт конструкторду аныктайт. StringBuffer(), StringBuffer(int size), StringBuffer(String str), StringBuffer (charSequence ch)
Төмөнкү кодду караңыз, StringBuffer s1=жаңы StringBuffer("Салам");
s1.append("Дүйнө");
System.out.println(s1);
1-байланышта, s1 үймөктөгү "Салам" объектисин билдирет. Объект өзгөрмөлүү, анткени ал StringBuffer аркылуу түзүлгөн. 2-байланышта "Дүйнө" ошол эле "Салам" String объектисине тиркелет.
StringBuffer классы менен түзүлгөн сап объекттери эстутумду сактай алат. StringBuffer жиптин коопсуздугун камсыз кылат, анткени эки жип бир эле учурда StringBuffer классында бир эле методго кире албайт. Жиптин коопсуздугу 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- билдирүүдө "Дүйнө" ошол эле "Hello" String объектисине тиркелет. Толугу менен жаңы String объекти түзүлгөн жок.
StringBuilder классы менен түзүлгөн стринг объекттери эстутумду сактай алат. StringBufferден айырмаланып, StringBuilder жиптин коопсуздугун камсыз кылбайт, анткени эки жип бир эле учурда StringBuilder классында бир эле ыкмага кире алат. StringBuilder классы append(), insert(), reverse(), replace() сыяктуу ыкмаларды камтыйт.
Жавадагы String, StringBuffer жана StringBuilder ортосунда кандай окшоштук бар?
Саптарды түзүү үчүн бардыгын колдонсо болот
String StringBuffer менен StringBuilderдин Javaдагы кандай айырмасы бар?
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 - бул саптарды өзгөртүү жана жиптин коопсуздугун камсыз кылуу үчүн колдонулган класс, ал эми StringBuilder - бул жиптин коопсуздугун камсыз кылбаган саптарды өзгөртүү үчүн колдонулган класс.
PDF String менен StringBuffer жана StringBuilder'ди Java'да жүктөп алыңыз
Сиз бул макаланын PDF версиясын жүктөп алып, шилтеме эскертүүсүнө ылайык оффлайн максаттарында колдоно аласыз. Сураныч, PDF версиясын бул жерден жүктөп алыңыз String StringBuffer жана StringBuilder ортосундагы айырма Java