"Hi, Amigo!"
"Hey, Ellie. May gusto ka bang sabihin sa akin?"
"Ngayon ay pag-uusapan natin kung gaano katagal nananatili sa memorya ang isang bagay, na kilala rin bilang panghabambuhay ng bagay. Pagkatapos malikha ang isang bagay, ito ay umiiral (nabubuhay) hangga't hindi bababa sa isang variable ang nag-iimbak ng address nito (mayroong kahit isa sanggunian dito). Kung wala nang mga sanggunian, ang bagay ay mamamatay. Narito ang ilang mga halimbawa:"
public class MainClass
{
public static void main (String[] args)
{
┏ Tommy
┃ Cat cat = new Cat("Tommy");
┃ cat = null;
┗
┏ Sammy
┃ Cat cat1 = new Cat("Sammy");
┃┏ Missy
┃┃Cat cat2 = new Cat("Missy");
┃┃cat2 = cat1;
┃┗
┃┏ Ginger
┃┃cat1 = new Cat("Ginger");
┃┃cat2 = null;
┃┗
┗
}
}
"Ang Tommy object ay umiiral para sa isang linya lamang mula sa paglikha nito. Ang tanging variable na tumutukoy sa object ay nakatakda sa null sa pinakasunod na linya, kaya ang object ay nawasak ng Java Virtual Machine (JVM)."
"Ang Sammy object ay naka-imbak sa cat1 variable pagkatapos itong malikha. O, mas tumpak, ang variable ay nag-iimbak ng reference dito. Pagkalipas ng ilang linya, ang reference na ito ay kinopya sa cat2 . Pagkatapos ay isang reference sa isa pang object ang nai-save sa cat1 . Ngayon, cat2 lang ang tumutukoy kay Sammy . Sa wakas, ang huling natitirang reference sa object ay nakatakda sa null sa huling linya ng pangunahing pamamaraan."
"Ang Missy object ay umiiral lamang para sa isang linya pagkatapos nitong likhain. Sa susunod na linya, ang cat2 variable ay nakatakda sa isa pang halaga, at ang reference sa Missy ay nawala. Ang object ay hindi na ma-access, kaya ito ay itinuturing na basura ng system (ibig sabihin, patay na ang bagay)."
"Kapag nalikha, ang bagay na Ginger ay umiiral hanggang sa matapos ang pamamaraan. Sa pagtatapos ng pamamaraan, ang variable ng cat2 ay nawasak, na ang Ginger ay nawasak kaagad pagkatapos nito."
"Nakita ko."
"Ngunit kung gumawa tayo ng object ng Cat sa loob ng isang paraan at mag-imbak ng reference dito sa isang variable ng instance, mananatili ang object ng Cat hangga't ito ay nire-reference ng isa pang object na buhay pa."
"Sa totoo lang, ang isang bagay ay hindi karaniwang agad na sinisira ng system. Ang Java Virtual Machine ay nagsasagawa ng 'pagkolekta ng basura' paminsan-minsan, sinisira ang mga bagay na minarkahan para sa pagtanggal. Higit pa tungkol sa prosesong iyon sa ibang pagkakataon."
"At, kung hindi na natin gustong i-reference ng variable ang isang object, maaari natin itong itakda sa null , o italaga ito ng reference sa isa pang object."
GO TO FULL VERSION