Java - Myśleć jak programista: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Linia 694:
 
==Odśmiecacz pamięci - Garbage collector==
Omawiając aliasy rozmawialiśmy o tym, co dzieje się, gdy więcej niż jedna zmienna odnosi się do tego samego obiektu. Co się stanie, gdy nie ma zmiennej odnoszącej się do obiektu? Na przykład: <br/>
 
:::<tt>Punkt pusty = new Punkt (3, 4); <tt><br/>
:::<tt>pusty = null;<tt><br/>
Pierwsza linia tworzy nowy obiekt Punkt i sprawia, puste na niego powoływać.Druga linia zmienia obiekt <tt>pusty</tt>, tak że zamiast odnoszenia się do obiektu, odnosi się do niczego (obiekt null). <br/>
Jeśli nic nie odnosi się do obiektu, niemożliwe jest odczytanie lub zapisanie jego wartości(w tym wypadku <tt>x</tt>,<tt>y</tt>). Nie można też wywołać na nim metody. W efekcie, obiekt przestaje istnieć. Możemy utrzymać obiekt w pamięci, ale jest to tylko strata przestrzeni pamięci, więc okresowo podczas działania programu, system szuka "osieroconych" obiektów i odzyskuje je w procesie zwanym 'garbage collection' - '''odśmiecanie pamięci'''. Przestrzeń pamięci zajmowana przez obiekt będzie dostępna do użycia dla nowo tworzonych obiektów. <br/><br/>
 
Nie musisz nic robić, aby korzystać z '''odśmiecacza pamięci''' stało, w ogóle nie będą tego świadomi. Wystarczy wiedzieć, że mechanizm ten pracuje w tle okresowo.
 
==Obiekty i prymitywy==