Reference articles on history, science, culture and more
Encyclopedia

Soft reference

A soft reference is a reference that is garbage-collected less aggressively. The class is java.lang.ref.SoftReference. The soft reference is one of the strengths or levels of 'non strong' reference defined in the Java programming language, the others being weak and phantom. In order from strongest to weakest, they are: strong, soft, weak, phantom.

Soft references behave almost identically to weak references. Soft and weak references provide two quasi-priorities for non-strongly referenced objects: 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 references may be used, for example, to write a free memory sensitive cache such that cached objects are kept until there is not enough heap space. In some cases weakly referenced objects may be reclaimed too quickly to make such a cache useful.

Watch videos about Soft referenceExplainers and documentaries on YouTube (opens in a new tab)

Sources and credits

This article is adapted from the Wikipedia article Soft reference, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.

Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.