Sobes.tech
Junior — Middle

Mis on SoftReference klassi kasutamine Java mäluhalduses?

sobes.tech AI

Vastus AI-lt

Java keeles SoftReference klassi kasutatakse pehmeid viiteid objektidele, mis võimaldavad prügikogujal neid objekte kustutada mäe puuduse korral, kuid hoida neid seni, kuni mälu on piisavalt.

See on kasulik vahemälu rakendamisel: objektid, millel on ainult pehmed viited, ei loeta täielikult kättesaamatuks, kuid neid saab vajadusel kustutada, et vältida OutOfMemoryError-i.

Kasutusnäide:

SoftReference<byte[]> cache = new SoftReference<>(new byte[1024 * 1024]);

byte[] data = cache.get();
if (data == null) {
    // Objekt on prügikogujal kustutatud, andmeid tuleb uuesti laadida
    data = new byte[1024 * 1024];
    cache = new SoftReference<>(data);
}

Sellisel viisil aitab SoftReference tõhusalt hallata mälu, võimaldades andmeid vahemällu salvestada, kuid takistamata prügikogujal vajadusel mälu vabastada.