Sobes.tech
Junior — Middle

Kaip objektas yra vaizduojamas atmintyje po programos kompiliavimo pabaigos?

sobes.tech AI

Atsakymas iš AI

Android (Java/Kotlin) programos kompiliavimas baigus, objektas atmintyje vaizduojamas kaip duomenų rinkinys, išdėstytas heap'e (atminties srityje). Atmintyje saugomi:

  • Objekto antraštė (metaduomenys, pavyzdžiui, nuoroda į klasę, informacija apie šiukšlių surinkėją).
  • Objekto laukai (pavyzdžio kintamieji) su jų reikšmėmis.

Nuorodos į objektus saugomos stack'e, o patys objektai — heap'e. Programos vykdymo metu JVM arba ART (Android Runtime) valdo atminties paskirstymą ir laisvinimą objektams.

Atmintyje objektą galima įsivaizduoti taip:

Heap:
+---------------------+
| Objekto antraštė  |
| Laukas1 (int)    |
| Laukas2 (nuoroda į String) |
| ...               |
+---------------------+

Stack:
+---------------------+
| Nuoroda į objektą |
+---------------------+