Hossein Khoujani
Hossein Khoujani
خواندن ۱ دقیقه·۳ سال پیش

References in Java by Example (Strong/Soft/Weak/Phantom)

خب در ادامه پست قبلی میخام چند نمونه از استفاده خیلی خیلی ساده مرجع هارو براتون نشون بدم

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



javaandroidweak referencesoft referencestrong reference
Gap Messenger Developer, Telegram Android Client Developer, Crazy Developer
شاید از این پست‌ها خوشتان بیاید