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.