Sobes.tech
Junior — Middle

როგორ არის ორგანიზებული მონაცემთა სტრუქტურა String ოპერაციული მეხსიერებაში?

sobes.tech AI

პასუხი AI-სგან

C# ში, სტრიქონი (string) არის უცვლელი (immutable) ობიექტი, რომელიც მეხსიერებაში წარმოდგენილია როგორც სიმბოლოთა მიმდევრობა UTF-16 კოდირებით.

String მონაცემთა სტრუქტურა მეხსიერებაში მოიცავს:

  • ობიექტს მართვად ხეობაში (heap), რომელიც შეიცავს:
    • ობიექტის სათაურს (მეტადატები გარე მტვრის აგროვებლისა და ტიპისთვის).
    • სტრიქონის სიგრძის ველს (სიმბოლოების რაოდენობა).
    • სიმბოლოთა მასივს char[], სადაც თითოეული სიმბოლო იკავებს 2 ბაიტს (UTF-16).

რადგან სტრიქონები უცვლელები არიან, ცვლილების დროს ქმნიან ახალ ობიექტს, ხოლო ძველი რჩება მეხსიერებაში სანამ გარე მტვრის აგროვებელი არ წაშლის.

მაგალითი:

string s = "მაგალითი";
// მეხსიერებაში, s ინახავს ობიექტს სიგრძით 7 და სიმბოლოთა მასივით 'მ','ა','გ','ა','ლ','ი','თ'

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