Junior — Middle
Kas saak listida Java olemasolevaid viite tüüpe ja nende omadusi?
sobes.tech AI
Vastus AI-lt
Java-s on järgmised viitedüübid, mis mõjutavad prügi kogumist ja mälu haldamist:
-
Tugev viide (Strong Reference)
- Tavaline viide, mida kasutame vaikimisi.
- Objekti, millel on tugev viide, ei eemaldata prügikogujast.
-
Nõrk viide (Soft Reference)
- Kasutatakse vahemäluks.
- Objekte, millel on pehmed viited, eemaldatakse ainult siis, kui mälu on puudulik.
- Klass:
java.lang.ref.SoftReference
-
Nõrk viide (Weak Reference)
- Objekte, millel on nõrgad viited, eemaldatakse järgmisel prügikogumise tsüklil, kui ei ole tugevaid viiteid.
- Kasutatakse nõrkade vahemälude rakendamiseks.
- Klass:
java.lang.ref.WeakReference
-
Fantomviide (Phantom Reference)
- Kasutatakse jälgimiseks, millal objekt on valmis eemaldamiseks.
- Ei võimalda objekti saada
get()meetodi kaudu (tagastab null). - Kasutatakse ressursside puhastamise täpsemaks kontrollimiseks.
- Klass:
java.lang.ref.PhantomReference
Näide nõrga viite loomisest:
import java.lang.ref.WeakReference;
String tugev = new String("Hello");
WeakReference<String> nõrk = new WeakReference<>(tugev);
tugev = null; // nüüd on objekt kättesaadav ainult nõrga viitega
String väärtus = nõrk.get(); // võib tagastada null, kui objekt on juba kogutud