Мягкая ссылка — это ссылка, которая менее агрессивно очищается сборщиком мусора. Мягкая ссылка — это одна из сильных сторон или уровней «несильной » ссылки, определенных в языке программирования Java , остальные — слабые и фантомные . В порядке от самой сильной к самой слабой они следующие: сильная, мягкая, слабая, фантомная.
Мягкие ссылки ведут себя почти идентично слабым ссылкам. Мягкие и слабые ссылки предоставляют два квазиприоритета для не сильно ссылаемых объектов: сборщик мусора всегда будет собирать слабо ссылаемые объекты, но будет собирать мягко ссылаемые объекты только тогда, когда его алгоритмы решат, что памяти достаточно мало, чтобы оправдать это.
Мягкие ссылки могут использоваться, например, для записи свободного кэша , чувствительного к памяти , так что кэшированные объекты сохраняются до тех пор, пока не будет достаточно места в куче. В некоторых случаях слабоссылаемые объекты могут быть возвращены слишком быстро, чтобы сделать такой кэш полезным.