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 |
+---------------------+