Sobes.tech
Junior — Middle

Vai vari uzskaitīt Java pastāvošo atsauču tipus un to īpašības?

sobes.tech AI

Atbilde no AI

Java ir pastāv šādi atsauces veidi, kas ietekmē atkritumu savākšanu un atmiņas pārvaldību:

  1. Stipra atsauce (Strong Reference)

    • Parastā atsauce, ko izmanto pēc noklusējuma.
    • Objekts ar stipru atsauci netiks izdzēsts no atkritumu savācēja.
  2. Mīksta atsauce (Soft Reference)

    • Izmanto kešatmiņai.
    • Objekti ar mīkstām atsaucēm tiek dzēsti tikai tad, ja ir trūkums atmiņā.
    • Klase: java.lang.ref.SoftReference
  3. Vāja atsauce (Weak Reference)

    • Objekti ar vājām atsaucēm tiek dzēsti nākamajā atkritumu savākšanas ciklā, ja nav stipru atsauču.
    • Izmanto vāju kešatmiņu īstenošanai.
    • Klase: java.lang.ref.WeakReference
  4. Fantom atsauce (Phantom Reference)

    • Izmanto, lai uzraudzītu brīdi, kad objekts ir gatavs dzēšanai.
    • Neļauj iegūt objektu ar get() metodi (atgriež null).
    • Izmanto resursu tīrīšanas precīkai kontrolei.
    • Klase: java.lang.ref.PhantomReference

Piemērs, kā izveidot vāju atsauci:

import java.lang.ref.WeakReference;

String stiprs = jauns String("Hello");
WeakReference<String> vags = jauns WeakReference<>(stiprs);

stiprs = null; // tagad objekts ir pieejams tikai caur vāju atsauci

String vērtība = vags.get(); // var atgriezt null, ja objekts jau ir savākts