خب در ادامه پست قبلی میخام چند نمونه از استفاده خیلی خیلی ساده مرجع هارو براتون نشون بدم
1- Strong:
به صورت پیش فرض هر متغیری که در جاوا تعریف میشه از نوع مرجعی Strong هست مثلا :
Car obj = new Car();
و فقط زمانی واجد پاک شدن هست که مرجع اون به null برسه مثلا زمانی که obj = null; بشه برای GC در دسرس خواهد بود
1- Soft/Weak:
import
java.lang.ref.WeakReference;
class
Car{
public
void
drive(){
System.out.println("Driving");
}
}
public
class
Example{
public
static
void
main(String[] args){
//یک مرجع قوی
Car car = new
Car();
car.drive();
//یک مرج نرم با نشانگر مرجع قوی این مرجع فقط زمانی در زباله قرار میگیرد که jvm نیاز به رم بیشتر دارد
SoftReference<Car> softRef = new
SoftReference<Car>(car);
//یک مرج ضعیف با نشانگر مرجع قوی این مرجع همیشه برای پاکسازی در دسترس GC هست
WeakReference<Car> weakRef = new
WeakReference<Car>(car);
car = null;
car = softRef.get();
g.drive();
car = null;
car = weakRef.get();
g.drive();
}
}
OutPut:
Driving
Driving
Driving