Sobes.tech
Junior — Middle

Hogyan jelenik meg egy objektum a memóriaban a program fordítása után?

sobes.tech MI

Válasz az MI-től

Android (Java/Kotlin) program fordításának befejezése után a memória objektumát úgy lehet elképzelni, mint egy adathalmazt, amely a heap-ben (halom) helyezkedik el. A memóriában tárolódnak:

  • Az objektum fejléc (metaadatok, például osztályreferencia, információk a szemétgyűjtőről).
  • Az objektum mezői (példányváltozók) és értékeik.

A referenciák az objektumokra a veremben (stack) tárolódnak, míg maguk az objektumok a heap-ben. A program futása során a JVM vagy az ART (Android Runtime) kezeli a memória foglalását és felszabadítását az objektumok számára.

Memória szerint az objektum így képzelhető el:

Heap:
+---------------------+
| Objektum fejléc     |
| Mező1 (int)        |
| Mező2 (String referencia) |
| ...                |
+---------------------+

Verem:
+---------------------+
| Referencia az objektumra |
+---------------------+