Fantomreferens

En fantomreferens är en slags referens i Java , där minnet kan återvinnas. Fantomreferensen är en av styrkorna eller nivåerna av "icke stark " referens som definieras i programmeringsspråket Java; de andra är svaga och mjuka . Fantomreferenser är den svagaste referensnivån i Java; i ordning från starkast till svagast är de: starka, mjuka, svaga, fantom.

Ett objekt hänvisas till fantomiskt efter att det har slutförts .

I Java 8 och tidigare versioner måste referensen rensas innan minnet för en slutgiltig referent kan återtas. En förändring i Java 9 gör att minnet från en färdig referent kan återvinnas omedelbart.

Använda sig av

Fantomreferenser är av begränsad användning, främst snäva tekniska användningsområden. För det första kan den användas istället för en slutföringsmetod , vilket garanterar att objektet inte återuppstår under slutförandet. Detta gör att föremålet kan samlas in som skräp i en enda cykel, snarare än att behöva vänta på en andra GC-cykel för att säkerställa att det inte har återuppstått. En andra användning är att upptäcka exakt när ett objekt har tagits bort från minnet (genom att använda i kombination med ett ReferenceQueue- objekt), se till att dess minne är tillgängligt, till exempel skjuta upp allokeringen av en stor mängd minne (t.ex. en stor bild) tills tidigare minne frigörs.

Se även