Soft reference
Appearance
A soft reference is one of the strengths of 'non strong' reference defined in the Java programming language; the others being weak and phantom.
The garbage collector will always collect weakly referenced objects, but will only collect softly referenced objects when its algorithms decide that memory is low enough to warrant it. Soft and weak references provide two quasi-priorities for non-strong;y referenced objects.
Soft references are useful, for example, when making a cache: weakly referenced objects may disappear too quickly to make the cache useful.