Junior — Middle
U čemu se sastoji primena klase SoftReference u upravljanju memorijom u Javi?
sobes.tech АИ
Одговор од АИ
U Javi, klasa SoftReference se koristi za kreiranje mekanih referenci na objekte, koje omogućavaju sakupljaču smeća da obriše te objekte u slučaju nedostatka memorije, ali da ih zadrži dok postoji dovoljno memorije.
Ovo je korisno za implementaciju kešova: objekti koji imaju samo meke reference nisu potpuno nedostupni, ali mogu biti obrisani ako je potrebno, da bi se izbegla greška OutOfMemoryError.
Primer upotrebe:
SoftReference<byte[]> cache = new SoftReference<>(new byte[1024 * 1024]);
byte[] data = cache.get();
if (data == null) {
// Objekat je obrisan od strane sakupljača smeća, potrebno je ponovo učitati podatke
data = new byte[1024 * 1024];
cache = new SoftReference<>(data);
}
Na ovaj način, SoftReference pomaže efikasnom upravljanju memorijom, omogućavajući skladištenje podataka u kešu, ali ne sprečavajući sakupljač smeća da oslobodi memoriju kada je to potrebno.