weakReferenceItself will not become zero ... how could he? However, his goal may become zero.
I suspect you mean:
while (weakReference.get() != null) {
, , , weakInt null, Integer.
, , , - , , Integer - .
, , , , :
import java.lang.ref.*;
public class Test {
public static void main(String[] args) {
Integer weakInt = new Integer(10);
WeakReference<Integer> weakReference = new WeakReference<Integer>(weakInt);
weakInt = null;
while (weakReference.get() != null) {
System.out.println("Looping...");
String[] generateOutOfMemoryStr = new String[999999];
}
System.out.println("Weak reference collected");
}
}