Co to jest miękkie odniesienie?

W języku kodowania Java® odniesienia są stale tworzone do obiektów, ciągów i zmiennych, nawet jeśli programista nie jest świadomy tych odniesień. Odniesienia te komunikują się bezpośrednio z kolekcjonerem śmieci, funkcją, która gromadzi niepotrzebne informacje i wyrzuca je, aby nie wymagać pamięci. Domyślnie wszystkie odniesienia są silnymi odniesieniami i są ustawione bez żadnego kodowania, co oznacza, że ​​nie są one wydane do poborcy śmieci. Miękkie odniesienie pozwala na wyrzucenie danych. Jest to odniesienie na środkowym poziomie dla wszystkich nieuzasadnionych odniesień.

Za każdym razem, gdy programista robi wszystko z Java®, czy to tak proste, jak tworzenie ciągu lub tworzenie złożonych funkcji, nawiązuje się. Programator nie musi pisać polecenia referencyjnego; Odniesienie jest wykonywane automatycznie i jest domyślnie silne odniesienie. Oznacza to, że dane z odniesienia nie mogą być wyrzucone, ponieważ są one powiązane z integralnymi obiektami potrzebnymi dla całego skryptu.

niektóreDane muszą jednak zostać wyrzucone, ponieważ w przeciwnym razie podejmują dużo pamięci. Na przykład, jeśli programista buduje skrypt, w którym wykorzystywane są numery seryjne lub inne tymczasowe informacje są gromadzone lub tworzone, utrzymanie tych informacji staje się szkodliwe. Program Java® odmówiłby wyrzucenia informacji, nawet gdy nie jest on niepotrzebny, a skrypt potrzebowałby coraz więcej pamięci.

Określając ciąg lub sekcję jako miękkie odniesienie, które należy umieścić w kodowaniu, mówi to kolekcjonerowi śmieci, że dane mogą zostać zwolnione. Po zwolnieniu ciąg lub sekcja będzie odczytywana jako „NULL”. Garbage Collector, w zależności od ustawienia, zdecyduje, kiedy dane powinny zostać wyrzucone.

Istnieją trzy niezmienione odniesienia: miękkie odniesienie, słabe odniesienie i odniesienie fantomowe. Słabe odniesienie jest najsłabsze, a jego dane są rzucaneszybko. Miękkie odniesienia, które są najlepsze dla skryptów, w których dane tymczasowe mogą być używane kilkakrotnie, są następne w kolejce. Phantom odniesienie jest wyrzucane prawie automatycznie, w ciągu sekundy i powinno być używane oszczędnie.

Czas pozostaje miękkie odniesienie zwykle zależy od ilości pamięci na komputerze. Jeśli pamięć jest pełna, wówczas poborca ​​śmieci najpierw zniszczy wszystkie słabe odniesienia. Gdy wszystkie słabe odniesienia znikną, a jeśli pamięć nadal musi oczyszczyć dane, wówczas miękkie odniesienia zostaną wyrzucone następne.

INNE JĘZYKI