title: What is a use case for a soft reference in Java?
body: <p>What is a use case for a soft reference in Java?  Would it be useful to garbage collect non-critical items when a JVM has run out of memory in order to free up enough resources to perhaps dump critical information before shutting down the JVM?</p>
  
  <p>Are they called soft-references in they they are soft and break when "put under stress" ie:the JVM has run out of memory.  I understand weak references and phantom references but not really when these would be needed.</p>