სხვაობა StringBuffer-სა და StringBuilder-ს შორის

სხვაობა StringBuffer-სა და StringBuilder-ს შორის
სხვაობა StringBuffer-სა და StringBuilder-ს შორის

ვიდეო: სხვაობა StringBuffer-სა და StringBuilder-ს შორის

ვიდეო: სხვაობა StringBuffer-სა და StringBuilder-ს შორის
ვიდეო: სანრემო - მინა-პაკეტში ჩასმული ჰორიზონტალური ჟალუზი 2024, ივლისი
Anonim

StringBuffer vs StringBuilder

Java არის ძალიან პოპულარული ობიექტზე ორიენტირებული ენა. ჯავაში, String კლასი მოწოდებულია სიმბოლოების თანმიმდევრობის შესანახად, რომლის შეცვლაც შეუძლებელია (ინიციალიზაციის შემდეგ). ალტერნატიულად, Java პროგრამირების ენა უზრუნველყოფს სიმბოლოების ცვალებადი თანმიმდევრობის ორ ტიპს. ანუ, როდესაც პროგრამისტებს სჭირდებათ გარკვეული სტრიქონის შეცვლა (ინიციალიზაციის შემდეგ), მათ უნდა გამოიყენონ StringBuffer კლასი ან StringBuilder კლასი, String კლასის ნაცვლად. 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 კლასი (ნორმალურ პირობებში).

გირჩევთ: