Sobes.tech
Junior — Middle

Ինչպես է կազմակերպված String տվյալների կառուցվածքը օպերացիոն հիշողությունում:

sobes.tech AI

Պատասխան AI-ից

C#-ում, տողը (string) անփոփոխ (immutable) օբյեկտ է, որը հիշողության մեջ ներկայացված է որպես նիշերի հաջորդականություն UTF-16 կոդավորմամբ:

String տվյալների կառուցվածքը հիշողության մեջ ներառում է՝

  • Օբյեկտ կառավարվող հողամասում (heap), որը պարունակում է՝
    • Օբյեկտի գլխագիր (մետադատություններ գարշահավաքի և տիպի համար):
    • Տողի երկարության դաշտը (նիշերի քանակը):
    • Նիշերի զանգված char[], որտեղ յուրաքանչյուր նիշը զբաղեցնում է 2 բայթ (UTF-16):

Քանի որ տողերը անփոփոխ են, փոփոխության դեպքում ստեղծվում է նոր օբյեկտ, իսկ հինը մնում է հիշողության մեջ մինչև գարշահավաքը այն մաքրի:

Օրինակ՝

string s = "Օրինակ";
// Հիշողության մեջ s պահում է օբյեկտ՝ երկարությամբ 6 և նիշերի զանգվածով՝ 'Օ','ր','ի','ն','գ','ա','ր'

Այսպիսով, տողը՝ դա օբյեկտ է՝ հաստատված երկարությամբ և նիշերի հաջորդականությամբ, որը օպտիմալիզացված է անվտանգ և արդյունավետ օգտագործման համար .NET-ում։