Հիմնական տարբերություն – String ընդդեմ StringBuffer-ի vs StringBuilder Java-ում
String, StringBuffer և String Builder դասեր են Java-ում: String-ը լայնորեն կիրառվում է Java ծրագրավորման մեջ։ Երբ ստեղծվում է String-ի օբյեկտ, հնարավոր չէ դրանք փոխել: Ամեն անգամ, երբ String-ում փոփոխություն է տեղի ունենում, այն ստեղծում է նոր String: Նույնիսկ եթե դա միացված է գոյություն ունեցող տողի, այն ստեղծում է նոր տող: Սա հանգեցնում է հիշողության վատթարացման: String-ը փոփոխելու համար օգտագործվում են Java-ում StringBuffer և StringBuilder դասերը: String-ի, StringBuffer-ի և StringBuilder-ի միջև Java-ում հիմնական տարբերությունն այն է, որ String-ը դաս է String տիպի օբյեկտ ստեղծելու համար, որը նիշերի հաջորդականություն է, StringBuffer-ը դաս է, որն օգտագործվում է տողերը փոփոխելու համար, որն ապահովում է շղթայի անվտանգությունը, իսկ StringBuilder-ը դաս, որն օգտագործվում է տողերի փոփոխման համար, որոնք չեն ապահովում թելերի անվտանգությունը:
Ի՞նչ է String-ը Java-ում:
String դասը java.lang փաթեթում է: Ամեն անգամ, երբ ծրագրավորողը String է ստեղծում, այն String տիպի օբյեկտ է։ Տողերը անփոփոխ նշանակություն ունեն, երբ օբյեկտը ստեղծվի, այն չի կարող փոխվել: Այն օբյեկտները, որոնք ստեղծվել են փաթաթման դասերի միջոցով, ինչպիսիք են Integer, Byte, Float, Double, նույնպես անփոփոխ են: Տողային բառացի պարփակված է կրկնակի չակերտների մեջ: օր. "Բարեւ աշխարհ". Ամեն անգամ, երբ ստեղծվում է տող բառացի, Java վիրտուալ մեքենան (JVM) ստուգում է String հաստատուն լողավազանը: Եթե տողը գոյություն ունի, հղում է կատարվում String հաստատուն լողավազանի: Եթե դա նոր տող է, ապա այդ օբյեկտը ստեղծվում է String հաստատուն լողավազանում:
Նկար 01. Java ծրագիր՝ օգտագործելով String, StringBuffer և StringBuilder
Դիտեք ստորև բերված ծածկագիրը:
String s1=«Բարև»;
s1=s1 + «Աշխարհ»;
System.out.println(s1);
Առաջին հայտարարության մեջ s1-ը վերաբերում է «Բարև»-ին String հաստատուն լողավազանում: Երկրորդ հայտարարության մեջ JVM-ը չի փոխում գոյություն ունեցող String-ը: Փոխարենը, այն ստեղծում է նոր տող որպես «Բարև աշխարհ», և s1-ն այժմ վերաբերում է այդ նոր տողին: Դուրս եկող «Բարև» օբյեկտը դեռ գոյություն ունի String հաստատուն լողավազանում:
Եթե կա կոդ, որն է, String s1="Բարև";
Տող s2=s1;
s1, s2 երկուսն էլ վերաբերելու են String օբյեկտին «Բարև»:
Ի՞նչ է StringBuffer-ը Java-ում:
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-ում «World»-ը կցվում է նույն «Hello» String օբյեկտին:
StringBuffer դասի միջոցով ստեղծված տողային օբյեկտները կարող են խնայել հիշողությունը: StringBuffer-ն ապահովում է շղթայի անվտանգությունը, քանի որ երկու շղթաներ չեն կարող միաժամանակ մուտք գործել StringBuffer դասի նույն մեթոդը: Թեմաների անվտանգությունը նվազեցնում է StringBuffer-ի կատարումը: StringBuffer դասը պարունակում է այնպիսի մեթոդներ, ինչպիսիք են append(), insert(), reverse(), replace().
Ի՞նչ է StringBuilder-ը Java-ում:
StringBuilder դասը օգտագործվում է String օբյեկտները փոփոխական դարձնելու համար: Հետևաբար, այդ օբյեկտները կարող են փոփոխվել: Ֆունկցիոնալությունը նման է StringBuffer-ին, բայց դա չի ապահովում թելի անվտանգությունը:StringBuilder-ն ունի կոնստրուկտորներ, ինչպիսիք են StringBuilder(), StringBuilder(int size), StringBuilder(String str).
Դիտեք ստորև բերված կոդը:
StringBuilder s1=նոր StringBuilder («Բարև»);
s1.append(«Աշխարհ»);
System.out.println(s1);
1-ին հայտարարության մեջ s1-ը վերաբերում է «Բարև» օբյեկտին կույտով: Օբյեկտը փոփոխական է, քանի որ այն ստեղծվել է StringBuilder-ի միջոցով: Հայտարարություն 2-ում «World»-ը կցվում է նույն «Hello» String օբյեկտին: Ամբողջովին նոր String օբյեկտի ստեղծում չկա:
StringBuilder դասով ստեղծված տողային օբյեկտները կարող են խնայել հիշողությունը: Ի տարբերություն StringBuffer-ի, StringBuilder-ը չի ապահովում թելերի անվտանգությունը, քանի որ երկու թելեր կարող են միաժամանակ մուտք գործել նույն մեթոդ StringBuilder դասում: StringBuilder դասը պարունակում է այնպիսի մեթոդներ, ինչպիսիք են append(), insert(), reverse(), replace().
Ի՞նչ նմանություն կա String-ի, StringBuffer-ի և StringBuilder-ի միջև Java-ում:
Բոլորը կարող են օգտագործվել տողեր ստեղծելու համար:
Ո՞րն է տարբերությունը String StringBuffer-ի և StringBuilder-ի միջև Java-ում:
String vs StringBuffer vs StringBuilder |
|
Տող | Տողը Java դաս է, որն օգտագործվում է String տիպի օբյեկտ ստեղծելու համար, որը նիշերի հաջորդականություն է: |
StringBuffer | StringBuffer-ը Java-ի դաս է, որն օգտագործվում է String օբյեկտներ ստեղծելու համար, որոնք կարող են փոփոխվել շղթայի անվտանգությամբ: |
StringBuilder | StringBuilder-ը դաս է, որն օգտագործվում է լարային օբյեկտներ ստեղծելու համար, որոնք կարող են փոփոխվել առանց թելերի անվտանգության: |
Փոփոխելիություն | |
Տող | Տողը անփոփոխ դաս է։ |
StringBuffer | StringBuffer-ը փոփոխվող դաս է: |
StringBuilder | StringBuilder-ը փոփոխվող դաս է: |
Թելերի անվտանգություն | |
Տող | Սթրինգի մեթոդները թելերով անվտանգ են: |
StringBuffer | StringBuffer-ի մեթոդները անվտանգ են և համաժամանակացված: |
StringBuilder | StringBuilder-ի մեթոդները անվտանգ և համաժամանակացված չեն: |
Կատարում | |
Տող | Տողը արագ է։ |
StringBuffer | StringBuffer-ը դանդաղ է: |
StringBuilder | StringBuilder-ը արագ է: |
Ամփոփում – String vs StringBuffer vs StringBuilder Java-ում
String-ը, StringBuffer-ը և StringBuilder-ը կարծես նույնն են, բայց դրանք տարբեր իմաստներ ունեն: Սրանք բոլորը Java դասեր են: Java-ում String-ի, StringBuffer-ի և StringBuilder-ի տարբերությունն այն է, որ String-ը դաս է String տիպի օբյեկտ ստեղծելու համար, որը նիշերի հավաքածու է, StringBuffer-ը դաս է, որն օգտագործվում է տողերը փոփոխելու և շղթայի անվտանգությունն ապահովելու համար, մինչդեռ StringBuilder-ը դաս, որն օգտագործվում է տողերի փոփոխման համար, որը չի ապահովում թելերի անվտանգությունը:
Ներբեռնեք PDF String vs StringBuffer vs StringBuilder Java-ում
Դուք կարող եք ներբեռնել այս հոդվածի PDF տարբերակը և օգտագործել այն անցանց նպատակներով՝ ըստ մեջբերումների: Խնդրում ենք ներբեռնել PDF տարբերակը այստեղ Java-ում String StringBuffer-ի և StringBuilder-ի միջև տարբերությունը