არის StringBuilder უფრო სწრაფი ვიდრე სტრიქონების შეერთება?
არის StringBuilder უფრო სწრაფი ვიდრე სტრიქონების შეერთება?

ვიდეო: არის StringBuilder უფრო სწრაფი ვიდრე სტრიქონების შეერთება?

ვიდეო: არის StringBuilder უფრო სწრაფი ვიდრე სტრიქონების შეერთება?
ვიდეო: DO NOT Concatenate Strings Like This In Python, There's A Better Way. 2024, აპრილი
Anonim

1) სიმებიანი ობიექტი უცვლელია Java-ში, მაგრამ StringBuffer და StringBuilder ცვალებადი ობიექტებია. 2) StringBuffer სინქრონიზებულია ხოლო StringBuilder არ არის რაც ქმნის StringBuilder უფრო სწრაფად ვიდრე StringBuffer. 3) შეერთება ოპერატორი "+" შიდა დანერგილია ან StringBuffer-ის ან StringBuilder.

ანალოგიურად შეიძლება ვინმემ იკითხოს, არის თუ არა სტრიქონების ფორმატი უფრო სწრაფი ვიდრე შეერთება?

მთავარი მიზეზი ისაა სიმებიანი . ფორმატი () შეიძლება უფრო ადვილად ლოკალიზდეს რესურსის ფაილებიდან დატვირთული ტექსტით, ხოლო შეერთება არ შეიძლება ლოკალიზდეს ახალი შესრულებადი ფაილის წარმოების გარეშე, სხვადასხვა კოდით თითოეული ენისთვის. დროის შედეგები ასეთია: შეერთება = 265 მილიწამი.

დამატებით, როდის არ უნდა გამოიყენოთ StringBuilder? Ისე გამოიყენეთ StringBuilder როცა გჭირდება კეთება ბევრი მოდიფიკაცია სტრინგზე. არა მართლა შენ უნდა გამოიყენოს StringBuilder თუ თქვენ აკავშირებთ დიდ სიმებს ან გაქვთ მრავალი შეერთება, როგორც მარყუჟში. მე ზოგადად გამოიყენეთ სიმების შემქმნელი კოდის ნებისმიერი ბლოკისთვის, რომელიც გამოიწვევს სამი ან მეტი სტრიქონის შეერთებას.

ანალოგიურად, რომელია უფრო სწრაფი სტრიქონი თუ StringBuilder?

ობიექტები სიმებიანი არის უცვლელი და StringBuffer-ის ობიექტები და StringBuilder ცვალებადია. StringBuffer და StringBuilder მსგავსია, მაგრამ StringBuilder არის უფრო სწრაფად და სასურველია StringBuffer-ზე ერთი ხრახნიანი პროგრამისთვის. თუ საჭიროა ძაფის უსაფრთხოება, მაშინ გამოიყენება StringBuffer.

როდის გამოიყენებს პროგრამისტი string vs StringBuilder?

როდის გამოყენება რომელი: თუ ა სიმებიანი შემდეგ იქნება მუდმივი მთელი პროგრამის განმავლობაში გამოიყენეთ String კლასის ობიექტი, რადგან ა სიმებიანი ობიექტი უცვლელია. Თუ სიმებიანი შეიძლება ცვლილება (მაგალითად: ბევრი ლოგიკა და ოპერაციები მშენებლობაში სიმებიანი ) შემდეგ გამოყენებით ა StringBuilder საუკეთესო ვარიანტია.

გირჩევთ: