Sobes.tech
Junior — Middle

Jak obiekt jest reprezentowany w pamięci po zakończeniu kompilacji programu?

sobes.tech AI

Odpowiedź od AI

Po zakończeniu kompilacji programu na Androidzie (Java/Kotlin), obiekt w pamięci jest reprezentowany jako zbiór danych umieszczonych na stercie (heap). W pamięci przechowywane są:

  • Nagłówek obiektu (metadane, np. odwołanie do klasy, informacje dla zbieracza śmieci).
  • Pola obiektu (zmienne instancji) z ich wartościami.

Odwołania do obiektów są przechowywane na stosie, a same obiekty na stercie. Podczas działania programu JVM lub ART (Android Runtime) zarządzają przydziałem i zwalnianiem pamięci dla obiektów.

Obiekt w pamięci można wyobrazić sobie tak:

Heap:
+---------------------+
| Nagłówek Obiektu    |
| Pole1 (int)         |
| Pole2 (referencja String) |
| ...                 |
+---------------------+

Stos:
+---------------------+
| Referencja do Obiektu |
+---------------------+