Sobes.tech
Middle

Kur tiek glabāti atsauces tipi un kas ar tiem notiek programmas darbības laikā?

sobes.tech AI

Atbilde no AI

Referenču tipi tiek ir glabājas heapā.

Tīmekļa darbības laikā notiek šādi:

  1. Izveide: Kad tiek izveidots referenču tips objekts (piemēram, new MyClass()), šim objektam tiek piešķirta atmiņa heapā. Mainīgais, kas to satur, glabā atsauci uz šo atmiņas daļu.
  2. Piekļuve: Piekļuve objekta laukiem un metodēm notiek caur šo atsauci.
  3. Atkritumu savākšana (Garbage Collection): Kad objekts vairs nav pieejams no aktīvas programmas daļas (tam nav atsauču), atkritumu savācējs var brīvi atbrīvot to atmiņu heapā. Šis process notiek automātiski "fona" režīmā un neprasa tiešu programmētāja iejaukšanos. Atkritumu savācējs periodiski skenē heap, atrod nepieejamos objektus un atgriež to atmiņu sistēmai.
  4. Izmaiņas: Objekta saturs heapā var tikt mainīts. Ja vairākas atsauces mainīgās norāda uz vienu un to pašu objektu, izmaiņas tā stāvoklī būs redzamas caur citām atsaucēm.
  5. Atsauces pārrakstīšana: Atsauces mainīgais var tikt pārrakstīts, lai norādītu uz citu objektu vai null.

Piemērs:

// String objekta izveide heapā (teksti - atsauces tips)
String myString = "Hello";

// myString_2 norāda uz to pašu objektu
String myString_2 = myString;

// Jauna String objekta izveide heapā un atsauces pārrakstīšana
myString = "World";

// Tagad myString norāda uz citu objektu, bet myString_2 joprojām uz veco