Sobes.tech
Junior — Middle

Կարող եք բացատրել, թե ինչ է նուրբ հղումը Java-ում հիշողության կառավարման համատեքստում?

sobes.tech AI

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

Java-да SoftReference — սա այն տեսակի հղում է, որը թույլ է տալիս օբյեկտին հավաքել գարշահավաքը, եթե համակարգի հիշողությունը բավարար չէ, բայց այն պահվում է այնքան ժամանակ, քանի դեռ հիշողությունը բավարար է:

Սա օգտակար է կեշավորման համար. նուրբ հղումներով օբյեկտները չեն ջնջվում անմիջապես, այլ միայն այն ժամանակ, երբ անհրաժեշտ է ազատել հիշողությունը:

Նմուշ օգտագործելու soft reference:

import java.lang.ref.SoftReference;

public class SoftReferenceExample {
    public static void main(String[] args) {
        Object strongRef = new Object();
        SoftReference<Object> softRef = new SoftReference<>(strongRef);

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

        Object obj = softRef.get();
        if (obj != null) {
            System.out.println("Օբյեկտը հասանելի է");
        } else {
            System.out.println("Օբյեկտը արդեն հավաքվել է գարշահավաքի կողմից");
        }
    }
}