ببینید.متغیر های اصلی رو مقدار پیش فرض بزارید:
String=null;
int=0;
boolean=false;
Object=null;
, ...
تمامی اشیای دیگه رو هم برابر Null کنید.البته فرض کنید یه شی n تا شی دیگه توش ساخته شده و هر کدومشون m شی توشون.
طراحی قوی اینطوریه که هر کلاسی که می نویسید،یه Destructor و یه Clear داشته باشه.
Clear برا وقتی که یه شی رو قرار نیست از بین ببرید ولی قراره به حالت پیش فرضش reset شه.
Destructor برا وقتی که اون شی قراره کلا از بین بره.
پس destructor می یاد و Clear رو اول صدا می زنه تا محیط داخلی شی رو خالی کنه و بعد با ادامه دستورات،کلا شی ساخته شده از کلاس رو از بین ببره.
پس با یه حالت درختی،تمام میوه های درخت(اشیای نهایی) و بعد ساقه ها(واسطه ها) تا به بوته و ریشه،DEstrcuct می شن و نهایتا شی ساخته شده اولیه از بین می ره.شاید در این پروژه دیگه کار از کار گذشته و نمی شه یه پروژه بزرگو از اول تو زمان کم به این حالت رسوند ولی تو پروژه های بعدی که انشاأالله قراره نوشته شه بهتره از این روش استفاده شه.
در ضمن بگم که ارایه و Object و Vector رو بهتره یک به یک خونه های داخلیشونو Destruct کنین و برابر Null کنید و بعد دستور Splice رو رو آرایه به کار ببرید تا خونه هاشو به رم ازاد کنه و بعد اونو مساوی Null کنید.در نهایت بعد از اینکه کل درخت اشیا رو از بین بردید،یه System.gc می زنید تا کلا حافظه از لوس اشیای Null و ... آزاد شه.البته باز بگم متاسفانه تو فلش یه متغیر به طور کامل از بین نمی ره...یعنی بعد از gc باز اگه متغیر null شده رو تعریف نکنید و ازش استفاده کنید،استفاده می شه...
در کل به این روش به نسبت سخت می گن مدیریت حافظه و اینکه مثلا وقتی یه بازی مثل angrybirds رو بازی می کنید و با بازی های متوالی،رم و سی پی یو بیش از حد درگیر نمی شه و تو یه حالت ثابت می مونه می گن مدیریت حافظه...وگرنه رفته رفته رم سیستم اشغال می شه و باطری خالی می شه و سی پی یو در گیر می شه و حافظه OVERFLOW می شه و برنامه بعد از مدتی کلا هنگ و غیر قابل استفاده می شه...
بای...