Junior — Middle
What is the purpose of the SoftReference class in Java memory management?
sobes.tech AI
Answer from AI
In Java, the SoftReference class is used to create soft references to objects, which allow the garbage collector to delete these objects when memory is low but keep them as long as there is enough memory.
This is useful for implementing caching: objects that are only softly referenced are not considered completely unreachable but can be removed if necessary to avoid OutOfMemoryError.
Example of usage:
SoftReference<byte[]> cache = new SoftReference<>(new byte[1024 * 1024]);
byte[] data = cache.get();
if (data == null) {
// The object was garbage collected, need to reload data
data = new byte[1024 * 1024];
cache = new SoftReference<>(data);
}
Thus, SoftReference helps manage memory efficiently by allowing data to be stored in cache but not preventing the garbage collector from freeing memory when needed.