Junior — Middle
Ինչպես է կազմակերպված String տվյալների կառուցվածքը օպերացիոն հիշողությունում:
sobes.tech AI
Պատասխան AI-ից
C#-ում, տողը (string) անփոփոխ (immutable) օբյեկտ է, որը հիշողության մեջ ներկայացված է որպես նիշերի հաջորդականություն UTF-16 կոդավորմամբ:
String տվյալների կառուցվածքը հիշողության մեջ ներառում է՝
- Օբյեկտ կառավարվող հողամասում (heap), որը պարունակում է՝
- Օբյեկտի գլխագիր (մետադատություններ գարշահավաքի և տիպի համար):
- Տողի երկարության դաշտը (նիշերի քանակը):
- Նիշերի զանգված
char[], որտեղ յուրաքանչյուր նիշը զբաղեցնում է 2 բայթ (UTF-16):
Քանի որ տողերը անփոփոխ են, փոփոխության դեպքում ստեղծվում է նոր օբյեկտ, իսկ հինը մնում է հիշողության մեջ մինչև գարշահավաքը այն մաքրի:
Օրինակ՝
string s = "Օրինակ";
// Հիշողության մեջ s պահում է օբյեկտ՝ երկարությամբ 6 և նիշերի զանգվածով՝ 'Օ','ր','ի','ն','գ','ա','ր'
Այսպիսով, տողը՝ դա օբյեկտ է՝ հաստատված երկարությամբ և նիշերի հաջորդականությամբ, որը օպտիմալիզացված է անվտանգ և արդյունավետ օգտագործման համար .NET-ում։