Skip to main content

Co to jest miękkie odniesienie?

W Java Język kodowania, 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ń.

Ilekroć programista robi coś z Java , czy to tak proste, jak tworzenie łańcucha lub tworzenie złożonych funkcji, odniesiono 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 do całego skryptu.

Niektóre dane muszą 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.Java Program odmówiłby wyrzucenia informacji, nawet gdy nie są one niepotrzebne, a skrypt potrzebowałby coraz większej pamięci.

, określając ciąg lub sekcję jako miękkie odniesienie, które należy umieścić w kodowaniu, toMówi Garbage Collector, że dane mogą zostać wydane.Po zwolnieniu ciąg lub sekcja będzie odczytywana jako NULL.Garbage Collector, w zależności od jego ustawienia, zdecyduje, kiedy dane powinny zostać wyrzucone.

Istnieją trzy niezłuszczone odniesienia: miękkie odniesienie, słabe odniesienie i odniesienie fantomowe.Słabe odniesienie jest najsłabsze, a jego dane są szybko wyrzucane.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.

Długość czasu miękkiego odniesienia zwykle zależy od ilości pamięci na komputerze.Jeśli pamięć jest pełna, wówczas poborcy ś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 w następnej kolejności.