Sobes.tech
Junior — Middle

Ինչպես են տարբեր տեսակի հղումները տարբեր կերպ ազդում գարշահոտ հավաքագրելու վրա Java լեզվում?

sobes.tech AI

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

Java- ում կան տարբեր տեսակի հղումներ, որոնք ազդում են Garbage Collector-ի (աղբի հավաքող) վարքագծի վրա.

  1. Հզոր Հղում (Strong Reference) — սովորական հղում օբյեկտին: Երբ հզոր հղումներ կան, օբյեկտը չի ջնջվի Garbage Collector-ի կողմից:

  2. Մեղմ Հղում (Soft Reference) — օբյեկտը, որը ունի մեղմ հղում, ջնջվում է միայն հիշողության պակասի դեպքում: Օգտագործվում է կեշավորման համար:

  3. Ազդու Հղում (Weak Reference) — օբյեկտը, որը ունի թույլ հղում, կարող է ջնջվել հաջորդ Garbage Collector-ի անցումում, նույնիսկ եթե կան թույլ հղումներ:

  4. Ֆանտոմ Հղում (Phantom Reference) — օգտագործվում է հետևելու համար, երբ օբյեկտը պատրաստ է ջնջվել, բայց դեռ չի ջնջվել: Հնարավորություն է տալիս կատարել լրացուցիչ գործողություններ օբյեկտի ջնջումից հետո:

Օրինակ՝ օգտագործելով թույլ հղում:

import java.lang.ref.WeakReference;

public class WeakRefExample {
    public static void main(String[] args) {
        Object obj = new Object();
        WeakReference<Object> weakRef = new WeakReference<>(obj);

        obj = null; // Հզոր հղում ջնջում

        System.gc(); // Գործարկում է Garbage Collector-ը

        if (weakRef.get() == null) {
            System.out.println("Օբյեկտը ջնջվել է");
        } else {
            System.out.println("Օբյեկտը դեռ հասանելի է");
        }
    }
}

Այս կերպ, հղման տեսակի ընտրությունը թույլ է տալիս վերահսկել օբյեկտների կյանքի տևողությունը և հիշողության արդյունավետ օգտագործումը։