StringBuffer ընդդեմ 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 դասը տրամադրում է append() և insert() մեթոդները ճիշտ նույն ֆունկցիոնալությամբ, ինչ StringBuffer դասում:
Ո՞րն է տարբերությունը StringBuffer-ի և StringBuilder-ի միջև:
Չնայած StringBuilder և StringBuffer դասերը կարող են օգտագործվել Java-ում նիշերի փոփոխվող հաջորդականությունների համար, դրանք ունեն հիմնական տարբերություն: Ի տարբերություն StringBuffer դասի, StringBuilder դասը անվտանգ չէ թելի համար և չի ապահովում համաժամացման: Հետևաբար, խորհուրդ է տրվում, որ StringBuilder դասը պետք է օգտագործվի StringBuffer դասի փոխարեն մեկ շղթայական հավելվածներում, քանի որ պնդում են, որ StringBuilder դասը շատ ավելի արագ կլինի, քան StringBuffer դասը (նորմալ պայմաններում):