public class Mobile {
private double price;
private String colour;
public Mobile(double price, String colour){
this.price = price;
this.colour = colour;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getColour() {
return colour;
}
public void setColour(String colour) {
this.colour = colour;
}
}
public class WeakReferenceTest {
public static void main(String[] args) {
Mobile mobile = new Mobile(1000000,"bmw");
ReferenceQueue<Mobile> ref = new ReferenceQueue<Mobile>();
WeakReference<Mobile> weakMobile = new WeakReference<Mobile>(mobile, ref);
int i=0;
while(true){
if(weakMobile.get()!=null){
i++;
System.out.println("Mobile Object is alive for "+ i +" loops - " + weakMobile + "---mobile = " + weakMobile.get());
}else{
System.out.println("Mobile Object has been Recycled...");
break;
}
}
Reference<Mobile> poll = (Reference<Mobile>) ref.poll();
System.out.println(poll);
System.out.println(poll.get());
}
}