 <p>You may refer to the documentation.</p> <p><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ref/SoftReference.html" rel="nofollow"><code>SoftReference</code></a>:</p> <blockquote> <p>[The garbage collector] may choose to <strong>clear atomically</strong> all soft references to that object and all soft references to any other softly-reachable objects from which that object is reachable through a chain of strong references.</p> </blockquote> <p><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ref/WeakReference.html" rel="nofollow"><code>WeakReference</code></a>:</p> <blockquote> <p>[The garbage collector] will <strong>atomically clear</strong> all weak references to that object and all weak references to any other weakly-reachable objects from which that object is reachable through a chain of strong and soft references.</p> </blockquote> <p>The point is moot for <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ref/PhantomReference.html" rel="nofollow"><code>PhantomReference</code></a> because the referent cannot be retrieved from it (<code>get</code> always returns null).</p>