Sobes.tech
Junior — Middle

Можеш ли да набројиш типове референци које постоје у Јави и њихове особине?

sobes.tech АИ

Одговор од АИ

U Javi postoji sledeće vrste referenci koje utiču na sakupljanje smeća i upravljanje memorijom:

  1. Čvrsta Referenca (Strong Reference)

    • Uobičajena referenca koju koristimo po defaultu.
    • Objekat sa čvrstom referencom neće biti obrisan od strane sakupljača smeća.
  2. Mekana Referenca (Soft Reference)

    • Koristi se za keširanje.
    • Objekti sa mekanim referencama se brišu samo u slučaju nedostatka memorije.
    • Klasa: java.lang.ref.SoftReference
  3. Slaba Referenca (Weak Reference)

    • Objekti sa slabim referencama se brišu u sledećem ciklusu sakupljanja smeća ako nema čvrstih referenci.
    • Koristi se za implementaciju slabih keševa.
    • Klasa: java.lang.ref.WeakReference
  4. Fantom Referenca (Phantom Reference)

    • Koristi se za praćenje trenutka kada je objekat spreman za brisanje.
    • Ne dozvoljava dobijanje objekta putem metode get() (vraća null).
    • Koristi se za finiju kontrolu čišćenja resursa.
    • Klasa: java.lang.ref.PhantomReference

Primer kreiranja slabe reference:

import java.lang.ref.WeakReference;

String jaka = new String("Hello");
WeakReference<String> slaba = new WeakReference<>(jaka);

jaka = null; // sada je objekat dostupan samo putem slabe reference

String vrednost = slaba.get(); // može vratiti null ako je objekat već sakupljen