Sobes.tech
Junior — Middle

Կարող եք նշել Java-ում առկա հղումների տեսակները և նրանց առանձնահատկությունները:

sobes.tech AI

Պատասխան AI-ից

Java-ում կան հետևյալ հղումները, որոնք ազդում են աղբարկղի հավաքագրման և հիշողության կառավարման վրա:

  1. Հզոր հղում (Strong Reference)

    • Հիմնական հղումը, որը մենք օգտագործում ենք ըստ նախնական կարգավորումների:
    • Հզոր հղումով օբյեկտը չի ջնջվի գարշահավաքողի կողմից:
  2. Նուրբ հղում (Soft Reference)

    • Օգտագործվում է կեշավորման համար:
    • Նուրբ հղումներով օբյեկտները ջնջվում են միայն հիշողության պակասի դեպքում:
    • Սինֆ: java.lang.ref.SoftReference
  3. Ազդու հղում (Weak Reference)

    • Ազդու հղումներով օբյեկտները ջնջվում են հաջորդ գարշահավաքման ցիկլում, եթե չկա ուժեղ հղում:
    • Օգտագործվում է թույլ կեշների իրականացման համար:
    • Սինֆ: java.lang.ref.WeakReference
  4. Ֆանտոմ հղում (Phantom Reference)

    • Օգտագործվում է հետևելու համար, երբ օբյեկտը պատրաստ է ջնջվել:
    • Չի թույլատրում ստանալ օբյեկտը get() մեթոդով (վերադարձնում է null):
    • Օգտագործվում է ռեսուրսների մաքրման ավելի նուրբ վերահսկման համար:
    • Սինֆ: java.lang.ref.PhantomReference

Օրինակ՝ թույլ հղում ստեղծելու համար՝

import java.lang.ref.WeakReference;

String ուժեղ = նոր String("Hello");
WeakReference<String> թույլ = նոր WeakReference<>(ուժեղ);

ուժեղ = null; // այժմ օբյեկտը հասանելի է միայն թույլ հղումով

String արժեք = թույլ.get(); // կարող է վերադարձնել null, եթե օբյեկտը արդեն հավաքվել է