Junior — Middle
Барномаҳои SoftReference дар идоракунии хотира дар Java чӣ гуна аст?
sobes.tech AI
Ҷавоб аз AI
Дар Java, синфи SoftReference истифода мешавад барои эҷоди истинодҳои нарм ба объектҳо, ки ба ҷамъкунандаи партовҳо имкон медиҳанд, ки ин объектҳоро дар ҳолати камбуди хотира тоза кунад, аммо онҳоро то ҳадди имкон нигоҳ дорад.
Ин барои татбиқи кешҳо муфид аст: объектҳое, ки танҳо бо истинодҳои нарм доранд, пурра дастрас ҳисоб намешаванд, аммо метавонанд дар ҳолати зарурӣ тоза шаванд, то аз хати OutOfMemoryError пешгирӣ шавад.
Масалан истифода:
SoftReference<byte[]> cache = new SoftReference<>(new byte[1024 * 1024]);
byte[] data = cache.get();
if (data == null) {
// Объект аз ҷониби ҷамъкунандаи партовҳо тоза шудааст, бояд маълумотҳоро дубора боркунид
data = new byte[1024 * 1024];
cache = new SoftReference<>(data);
}
Ин тариқ, SoftReference кӯмак мекунад, ки хотираро самаранок идора кардан мумкин аст, бо нигоҳ доштани маълумот дар кеш, аммо бо ин роҳ ҷамъкунандаи партовҳо метавонад хотирасозиро дар ҳолати зарурӣ озод кунад.