Wat is een zachte referentie?

In de Java® -coderingstaal worden referenties voortdurend verwijderd naar objecten, strings en variabelen, zelfs als de programmeur zich niet bewust is van die referenties. Deze referenties communiceren rechtstreeks met de afvalcollector, een functie die onnodige informatie verzamelt en deze weggooit zodat het niet langer geheugen in beslag neemt. Standaard zijn alle referenties sterke referenties en zijn ze ingesteld zonder enige codering, wat betekent dat ze niet worden vrijgegeven aan de vuilnisbedelcollector. Met een zachte referentie kunnen de gegevens worden weggegooid. Het is de referentie op het middenniveau voor alle niet-sterke referenties.

Wanneer een programmeur iets doet met Java®, of het nu zo eenvoudig is als het maken van een string of het maken van complexe functies, wordt een referentie gemaakt. De programmeur hoeft geen referentieopdracht te schrijven; De referentie wordt automatisch gemaakt en is standaard een sterke referentie. Dit betekent dat de gegevens uit de referentie niet kunnen worden weggegooid, omdat ze zijn gekoppeld aan integrale objecten die nodig zijn voor het hele script.

SommigeGegevens moeten echter worden weggegooid, omdat ze anders veel geheugen op zich nemen. Als een programmeur bijvoorbeeld een script bouwt waarin serienummers worden gebruikt of andere tijdelijke stukjes informatie worden verzameld of gemaakt, wordt vasthouden aan deze informatie schadelijk. Het Java® -programma zou weigeren de informatie weg te gooien, zelfs als deze niet nodig is, en het script zou steeds meer geheugen nodig hebben om te functioneren.

Door een tekenreeks of sectie op te geven als een zachte referentie, die in de codering moet worden geplaatst, vertelt dit de afvalcollector dat de gegevens kunnen worden vrijgegeven. Eenmaal uitgebracht, wordt de tekenreeks of sectie gelezen als "NULL". De afvalcollector zal, afhankelijk van de instelling, beslissen wanneer de gegevens moeten worden weggegooid.

Er zijn drie niet-sterke referenties: zachte referentie, zwakke referentie en fantoomreferentie. De zwakke referentie is het zwakst en de gegevens worden gegooidsnel weg. Zachte referenties, die het beste zijn voor scripts waar tijdelijke gegevens meerdere keren kunnen worden gebruikt, zijn de volgende in de rij. Een fantoomreferentie wordt bijna automatisch weggegooid, binnen een seconde en moet spaarzaam worden gebruikt.

De tijdsduur die een zachte referentie blijft, hangt meestal af van de hoeveelheid geheugen in de computer. Als het geheugen vol is, zal de afvalcollector eerst alle zwakke referenties vernietigen. Wanneer alle zwakke referenties verdwenen zijn en als het geheugen nog steeds gegevens moet zuiveren, worden zachte referenties vervolgens weggegooid.

ANDERE TALEN