Nie do końca mogę zrozumieć jedno zagadnienie. Otóż to co wiem :
- Na stercie przechowywane są instancje klas, i tam pracuje GC
- Na stosie mamy wywołania metod i zmienne lokalne
Ale problem pojawia się wraz ze słowem "static". Może powiem jak ja to rozumiem.
Jeśli klasa zawiera pole statyczne to przynależy ono ściśle do klasy a nie do obiektu. Ale w takim razie gdzie w pamięci jest przechowywane takie pole?
Nie może być na stercie, bo nie należy do żadnego obiektu. Na stosie? No nie bardzo, zmienna lokalna to to nie jest , nie umiera po zakończeniu metody.
Wyczytałem w internecie coś takiego:
Zmienna statyczna zajmuje miejsce w pamięci tylko raz w obszarze klasy co pomaga zaoszczędzić sporo pamięci a sam program jest bardziej efektywny.
W obszarze klasy? Nie rozumiem.