Sobes.tech
Junior — Middle

Java тилиндеги ар кандай шилтемелердин түрлөрү эмнеде жана алар кантип калдык жыйноого таасир этет?

sobes.tech AI

AIден жооп

Javaда, Garbage Collector-дын (чүп жыйгычтын) жүрүм-турумүнө таасир эткен ар кандай шилтемелер бар:

  1. Күчтүү шилтеме (Strong Reference) — обьектке карата жөнөкөй шилтеме. Күчтүү шилтемелер болсо, обьект жыйгыч тарабынан өчүрүлбөйт.

  2. Жумшак шилтеме (Soft Reference) — жумшак шилтемеге ээ обьект, эс алуу үчүн жетиштүү эс тутум жок учурда гана өчүрүлөт. Кэш үчүн колдонулат.

  3. Слабая шилтеме (Weak Reference) — слабая шилтеме менен обьект, кийинки жыйгыч өтүүдө өчүрүлүшү мүмкүн, эгерде слабые шилтемелер болсо да.

  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(); // Жыйгычты иштетүү

        if (weakRef.get() == null) {
            System.out.println("Объект өчүрүлдү");
        } else {
            System.out.println("Объект дагы эле бар");
        }
    }
}

Бул жол менен, шилтеме түрүн тандоо объекттердин жашоо мөөнөтүн жана эс тутумду эффективдүү пайдаланууну көзөмөлдөөгө мүмкүндүк берет.