Junior — Middle
Կարող եք նշել Java-ում առկա հղումների տեսակները և նրանց առանձնահատկությունները:
sobes.tech AI
Պատասխան AI-ից
Java-ում կան հետևյալ հղումները, որոնք ազդում են աղբարկղի հավաքագրման և հիշողության կառավարման վրա:
-
Հզոր հղում (Strong Reference)
- Հիմնական հղումը, որը մենք օգտագործում ենք ըստ նախնական կարգավորումների:
- Հզոր հղումով օբյեկտը չի ջնջվի գարշահավաքողի կողմից:
-
Նուրբ հղում (Soft Reference)
- Օգտագործվում է կեշավորման համար:
- Նուրբ հղումներով օբյեկտները ջնջվում են միայն հիշողության պակասի դեպքում:
- Սինֆ:
java.lang.ref.SoftReference
-
Ազդու հղում (Weak Reference)
- Ազդու հղումներով օբյեկտները ջնջվում են հաջորդ գարշահավաքման ցիկլում, եթե չկա ուժեղ հղում:
- Օգտագործվում է թույլ կեշների իրականացման համար:
- Սինֆ:
java.lang.ref.WeakReference
-
Ֆանտոմ հղում (Phantom Reference)
- Օգտագործվում է հետևելու համար, երբ օբյեկտը պատրաստ է ջնջվել:
- Չի թույլատրում ստանալ օբյեկտը
get()մեթոդով (վերադարձնում է null): - Օգտագործվում է ռեսուրսների մաքրման ավելի նուրբ վերահսկման համար:
- Սինֆ:
java.lang.ref.PhantomReference
Օրինակ՝ թույլ հղում ստեղծելու համար՝
import java.lang.ref.WeakReference;
String ուժեղ = նոր String("Hello");
WeakReference<String> թույլ = նոր WeakReference<>(ուժեղ);
ուժեղ = null; // այժմ օբյեկտը հասանելի է միայն թույլ հղումով
String արժեք = թույլ.get(); // կարող է վերադարձնել null, եթե օբյեկտը արդեն հավաքվել է