Junior — Middle
როგორ არის ორგანიზებული მონაცემთა სტრუქტურა String ოპერაციული მეხსიერებაში?
sobes.tech AI
პასუხი AI-სგან
C# ში, სტრიქონი (string) არის უცვლელი (immutable) ობიექტი, რომელიც მეხსიერებაში წარმოდგენილია როგორც სიმბოლოთა მიმდევრობა UTF-16 კოდირებით.
String მონაცემთა სტრუქტურა მეხსიერებაში მოიცავს:
- ობიექტს მართვად ხეობაში (heap), რომელიც შეიცავს:
- ობიექტის სათაურს (მეტადატები გარე მტვრის აგროვებლისა და ტიპისთვის).
- სტრიქონის სიგრძის ველს (სიმბოლოების რაოდენობა).
- სიმბოლოთა მასივს
char[], სადაც თითოეული სიმბოლო იკავებს 2 ბაიტს (UTF-16).
რადგან სტრიქონები უცვლელები არიან, ცვლილების დროს ქმნიან ახალ ობიექტს, ხოლო ძველი რჩება მეხსიერებაში სანამ გარე მტვრის აგროვებელი არ წაშლის.
მაგალითი:
string s = "მაგალითი";
// მეხსიერებაში, s ინახავს ობიექტს სიგრძით 7 და სიმბოლოთა მასივით 'მ','ა','გ','ა','ლ','ი','თ'
ამიტომ, სტრიქონი არის ობიექტი ფიქსირებული სიგრძით და სიმბოლოთა მიმდევრობით, რომელიც ოპტიმიზირებულია უსაფრთხო და ეფექტიანი გამოყენებისთვის .NET-ში.