рд╣рд╛рдп!

рдорд▓рд╛ рд╡рд╛рдЯрддреЗ рдХреА рддреБрдордЪреНрдпрд╛ рдХреЙрдореНрдкреНрдпреБрдЯрд░рдордзреНрдпреЗ рдорд░реНрдпрд╛рджрд┐рдд рдореЗрдорд░реА рдЖрд╣реЗ рд╣реЗ рдореА рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рд╛рдВрдЧрд┐рддрд▓реНрдпрд╛рд╕ рддреБрдореНрд╣рд╛рд▓рд╛ рдлрд╛рд░рд╕реЗ рдЖрд╢реНрдЪрд░реНрдп рд╡рд╛рдЯрдгрд╛рд░ рдирд╛рд╣реА :) рдЕрдЧрджреА рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡реНрд╣ тАФ рд╕рд╛рдзрд╛рд░рдгрдд: RAM рд╕реНрдЯреЛрд░реЗрдЬрдкреЗрдХреНрд╖рд╛ рдХрд┐рддреАрддрд░реА рдкрдЯреАрдиреЗ рдореЛрдареА тАФ рддреБрдордЪреНрдпрд╛ рдЖрд╡рдбрддреНрдпрд╛ рдЧреЗрдо, рдЯреАрд╡реНрд╣реА рд╢реЛ, рд╕рд╣ рдХреНрд╖рдорддреЗрдиреБрд╕рд╛рд░ рдкреЕрдХ рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ. рдЖрдгрд┐ рдЕрдзрд┐рдХ. рд╣реЗ рд╣реЛрдгреНрдпрд╛рдкрд╛рд╕реВрди рд░реЛрдЦрдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣рд╛рд▓рд╛ рдореЗрдорд░реАрдЪреНрдпрд╛ рд╕рджреНрдп рд╕реНрдерд┐рддреАрдЪреЗ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдгреЗ рдЖрдгрд┐ рддреБрдордЪреНрдпрд╛ рд╕рдВрдЧрдгрдХрд╛рд╡рд░реВрди рдЕрдирд╛рд╡рд╢реНрдпрдХ рдлрд╛рдЗрд▓реНрд╕ рд╣рдЯрд╡рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдЬрд╛рд╡рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧрдЪрд╛ рдпрд╛ рд╕рдЧрд│реНрдпрд╛рд╢реА рдХрд╛рдп рд╕рдВрдмрдВрдз? рд╕рд░реНрд╡ рдХрд╛рд╣реА! рд╢реЗрд╡рдЯреА, рдЬреЗрд╡реНрд╣рд╛ Java рдорд╢реАрди рдХреЛрдгрддреАрд╣реА рд╡рд╕реНрддреВ рддрдпрд╛рд░ рдХрд░рддреЗ, рддреЗрд╡реНрд╣рд╛ рддреЗ рддреНрдпрд╛ рд╡рд╕реНрддреВрд╕рд╛рдареА рдореЗрдорд░реА рд╡рд╛рдЯрдк рдХрд░рддреЗ.

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореЛрдареНрдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдордордзреНрдпреЗ, рджрд╣рд╛рдкрдЯ рдЖрдгрд┐ рд╢реЗрдХрдбреЛ рд╣рдЬрд╛рд░реЛ рд╡рд╕реНрддреВ рддрдпрд╛рд░ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рддреНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХрд╛рдЪреА рд╕реНрд╡рддрдГрдЪреА рдореЗрдорд░реА рдЕрд╕рддреЗ. рдкрдг рдпрд╛ рд╕рд░реНрд╡ рд╡рд╕реНрддреВ рдХрд┐рддреА рдХрд╛рд│ рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдЖрд╣реЗрдд рдЕрд╕реЗ рддреБрдореНрд╣рд╛рд▓рд╛ рд╡рд╛рдЯрддреЗ? рдЖрдордЪрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЪрд╛рд▓реВ рдЕрд╕рддрд╛рдирд╛ рддреЗ "рд▓рд╛рдЗрд╡реНрд╣" рдЕрд╕рддрд╛рдд рдХрд╛? рдирдХреНрдХреАрдЪ рдирд╛рд╣реА. рдЬрд╛рд╡рд╛ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдЪреЗ рд╕рд░реНрд╡ рдлрд╛рдпрджреЗ рдЕрд╕реВрдирд╣реА, рддреЗ рдЕрдорд░ рдирд╛рд╣реАрдд :) рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдЪреЗ рд╕реНрд╡рддрдГрдЪреЗ рдЬреАрд╡рдирдЪрдХреНрд░ рдЕрд╕рддреЗ. рдЖрдЬ рдЖрдореНрд╣реА рдХреЛрдб рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдкрд╛рд╕реВрди рдереЛрдбрд╛ рдмреНрд░реЗрдХ рдШреЗрдК рдЖрдгрд┐ рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд╛рд╣реВ :) рд╢рд┐рд╡рд╛рдп, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╕рд╛ рдХрд╛рд░реНрдп рдХрд░рддреЛ рдЖрдгрд┐ рд╕рдВрд╕рд╛рдзрдиреЗ рдХрд╢реА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реА рдЬрд╛рддрд╛рдд рд╣реЗ рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА рд╣реЗ рдЦреВрдк рдорд╣рддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗ. рддрд░, рд╡рд╕реНрддреВрдЪреЗ рдЬреАрд╡рди рдХрдзреА рд╕реБрд░реВ рд╣реЛрддреЗ? рдПрдЦрд╛рджреНрдпрд╛ рд╡реНрдпрдХреНрддреАрдкреНрд░рдорд╛рдгреЗ - рддреНрдпрд╛рдЪреНрдпрд╛ рдЬрдиреНрдорд╛рдкрд╛рд╕реВрди, рдореНрд╣рдгрдЬреЗрдЪ рдирд┐рд░реНрдорд┐рддреА.

Cat cat = new Cat(); // Here the lifecycle of our Cat object begins!

рдкреНрд░рдердо, рдЬрд╛рд╡рд╛ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрди рдСрдмреНрдЬреЗрдХреНрдЯ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рдорд╛рдгрд╛рдд рдореЗрдорд░реАрдЪреЗ рд╡рд╛рдЯрдк рдХрд░рддреЗ. рдордЧ рддреНрдпрд╛ рд╕реНрдореГрддреАрдЪрд╛ рд╕рдВрджрд░реНрдн рддрдпрд╛рд░ рд╣реЛрддреЛ. рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, рддреЛ рд╕рдВрджрд░реНрдн рдореНрд╣рдгрддрд╛рдд cat, рддреНрдпрд╛рдореБрд│реЗ рдЖрдореНрд╣реА рддреНрдпрд╛рдЪрд╛ рдорд╛рдЧреЛрд╡рд╛ рдареЗрд╡реВ рд╢рдХрддреЛ. рдордЧ рддреНрдпрд╛рдЪреЗ рд╕рд░реНрд╡ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд, рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░рд▓рд╛ рдХреЙрд▓ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ тАФ ta-da! - рдЖрдордЪреА рдирд╡реНрдпрд╛рдиреЗ рддрдпрд╛рд░ рдЭрд╛рд▓реЗрд▓реА рд╡рд╕реНрддреВ рд╕реНрд╡рддрдГрдЪреЗ рдЬреАрд╡рди рдЬрдЧрдд рдЖрд╣реЗ :)

рд╡рд╕реНрддреВрдВрдЪреЗ рдЖрдпреБрд░реНрдорд╛рди рдмрджрд▓рддреЗ, рдореНрд╣рдгреВрди рдЖрдореНрд╣реА рдпреЗрдереЗ рдЕрдЪреВрдХ рд╕рдВрдЦреНрдпрд╛ рджреЗрдК рд╢рдХрдд рдирд╛рд╣реА. рдХреЛрдгрддреНрдпрд╛рд╣реА рдкрд░рд┐рд╕реНрдерд┐рддреАрдд, рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдордордзреНрдпреЗ рдХрд╛рд╣реА рдХрд╛рд│ рд░рд╛рд╣рддреЛ рдЖрдгрд┐ рддреНрдпрд╛рдЪреЗ рдХрд╛рд░реНрдп рдХрд░рддреЛ. рддрдВрддреЛрддрдВрдд рд╕рд╛рдВрдЧрд╛рдпрдЪреЗ рддрд░, рдПрдЦрд╛рджреА рд╡рд╕реНрддреВ "рдЬрд┐рд╡рдВрдд" рдЕрд╕рддреЗ рдЬреЛрдкрд░реНрдпрдВрдд рддреНрдпрд╛рдЪреЗ рд╕рдВрджрд░реНрдн рдЕрд╕рддрд╛рдд. рдХреЛрдгрддреЗрд╣реА рд╕рдВрджрд░реНрдн рд╢рд┐рд▓реНрд▓рдХ рдирд╕рд▓реНрдпрд╛рдореБрд│реЗ, рд╡рд╕реНрддреВ "рдореГрддреНрдпреВ" рд╣реЛрддреЗ. рдЙрджрд╛рд╣рд░рдг:

public class Car {

   String model;

   public Car(String model) {
       this.model = model;
   }

   public static void main(String[] args) {
       Car lamborghini  = new Car("Lamborghini Diablo");
       lamborghini = null;

   }

}

рд▓реЕрдореНрдмреЛрд░реНрдЧрд┐рдиреА рдбрд╛рдпрдмреНрд▓реЛ рдХрд╛рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрджреНрдзрддреАрдЪреНрдпрд╛ рджреБрд╕рд▒реНрдпрд╛ рдУрд│реАрд╡рд░ рдЬрд┐рд╡рдВрдд рд╣реЛрдгреЗ рдерд╛рдВрдмрд╡рддреЗ main(). рддреНрдпрд╛рдд рдлрдХреНрдд рдПрдХрдЪ рд╕рдВрджрд░реНрдн рд╣реЛрддрд╛, рдЖрдгрд┐ рдирдВрддрд░ рддреЛ рд╕рдВрджрд░реНрдн рд╕рдорд╛рди рд╕реЗрдЯ рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛ null. рд▓реЕрдореНрдмреЛрд░реНрдЧрд┐рдиреА рдбрд╛рдпрдмреНрд▓реЛрдЪреЗ рдХреЛрдгрддреЗрд╣реА рд╕рдВрджрд░реНрдн рд╢рд┐рд▓реНрд▓рдХ рдирд╕рд▓реНрдпрд╛рдореБрд│реЗ, рд╡рд╛рдЯрдк рдХреЗрд▓реЗрд▓реА рдореЗрдорд░реА "рдХрдЪрд░рд╛" рдмрдирддреЗ. рд╣реЗ рд╣реЛрдгреНрдпрд╛рд╕рд╛рдареА рд╕рдВрджрд░реНрдн рд╢реВрдиреНрдп рд╡рд░ рд╕реЗрдЯ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдирд╛рд╣реА:

public class Car {

   String model;

   public Car(String model) {
       this.model = model;
   }

   public static void main(String[] args) {
       Car lamborghini  = new Car("Lamborghini Diablo");

       Car lamborghiniGallardo = new Car("Lamborghini Gallardo");
       lamborghini = lamborghiniGallardo;
   }

}

рдпреЗрдереЗ рдЖрдкрдг рджреБрд╕рд░рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рддрдпрд╛рд░ рдХреЗрд▓рд╛ рдЖрдгрд┐ рдирдВрддрд░ рд╣рд╛ рдирд╡реАрди рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рдВрджрд░реНрднрд╛рд╕рд╛рдареА рдирд┐рдпреБрдХреНрдд рдХреЗрд▓рд╛ lamborghini. рдЖрддрд╛ Lamborghini GallardoрдСрдмреНрдЬреЗрдХреНрдЯрд▓рд╛ рджреЛрди рд╕рдВрджрд░реНрдн рдЖрд╣реЗрдд, рдкрд░рдВрддреБ Lamborghini DiabloрдСрдмреНрдЬреЗрдХреНрдЯрд▓рд╛ рдПрдХрд╣реА рдирд╛рд╣реА. рдореНрд╣рдгрдЬреЗ рддреА Diabloрд╡рд╕реНрддреВ рдЖрддрд╛ рдХрдЪрд░рд╛ рдЭрд╛рд▓реА рдЖрд╣реЗ. рдЬреЗрд╡реНрд╣рд╛ рдЬрд╛рд╡рд╛ рдЪреА рдЕрдВрдЧрднреВрдд рдпрдВрддреНрд░рдгрд╛ рдЬреНрдпрд╛рд▓рд╛ рдЧрд╛рд░реНрдмреЗрдЬ рдХрд▓реЗрдХреНрдЯрд░ (GC) рдореНрд╣рдгрддрд╛рдд рддреЗ рдХрд╛рд░реНрдпрд╛рдд рдпреЗрддреЗ.

рдХрдЪрд░рд╛ рд╕рдВрдХрд▓рдХ рд╣реА рдПрдХ рдЕрдВрддрд░реНрдЧрдд рдЬрд╛рд╡рд╛ рдпрдВрддреНрд░рдгрд╛ рдЖрд╣реЗ рдЬреА рдореЗрдорд░реА рдореБрдХреНрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЬрдмрд╛рдмрджрд╛рд░ рдЖрд╣реЗ, рдореНрд╣рдгрдЬреЗ рдореЗрдорд░реАрдордзреВрди рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╡рд╕реНрддреВ рдХрд╛рдвреВрди рдЯрд╛рдХрдгреЗ. рдЖрдореНрд╣реА рдпреЗрдереЗ рд░реЛрдмреЛрдЯ рд╡реНрд╣реЕрдХреНрдпреВрдо рдХреНрд▓рд┐рдирд░рдЪреЗ рдЪрд┐рддреНрд░ рдирд┐рд╡рдбрдгреНрдпрд╛рдЪреЗ рдПрдХ рдЪрд╛рдВрдЧрд▓реЗ рдХрд╛рд░рдг рдЖрд╣реЗ. рд╢реЗрд╡рдЯреА, рдХрдЪрд░рд╛ рдЧреЛрд│рд╛ рдХрд░рдгрд╛рд░рд╛ рддреНрдпрд╛рдЪ рдкреНрд░рдХрд╛рд░реЗ рдХрд╛рд░реНрдп рдХрд░рддреЛ: рдкрд╛рд░реНрд╢реНрд╡рднреВрдореАрдд, рддреЛ рдЖрдкрд▓реНрдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдордмрджреНрджрд▓ "рдкреНрд░рд╡рд╛рд╕" рдХрд░рддреЛ, рдЖрдкрд▓реНрдпрд╛ рднрд╛рдЧрд╛рд╡рд░ рдХреЛрдгрддреЗрд╣реА рдкреНрд░рдпрддреНрди рди рдХрд░рддрд╛ рдХрдЪрд░рд╛ рдЧреЛрд│рд╛ рдХрд░рддреЛ. рдкреНрд░реЛрдЧреНрд░рд╛рдордордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рд╡рд╕реНрддреВ рдХрд╛рдвреВрди рдЯрд╛рдХрдгреЗ рд╣реЗ рддреНрдпрд╛рдЪреЗ рдХрд╛рд░реНрдп рдЖрд╣реЗ.

рдЕрд╕реЗ рдХреЗрд▓реНрдпрд╛рдиреЗ рд╕рдВрдЧрдгрдХрд╛рддреАрд▓ рдореЗрдорд░реА рдЗрддрд░ рд╡рд╕реНрддреВрдВрд╕рд╛рдареА рдореЛрдХрд│реА рд╣реЛрддреЗ. рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрдард╡рдд рдЕрд╕реЗрд▓ рдХреА рдзрдбреНрдпрд╛рдЪреНрдпрд╛ рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛ рдЖрдореНрд╣реА рд╕рд╛рдВрдЧрд┐рддрд▓реЗ рд╣реЛрддреЗ рдХреА рд╕рд╛рдорд╛рдиреНрдп рдЬреАрд╡рдирд╛рдд рддреБрдореНрд╣рд╛рд▓рд╛ рддреБрдордЪреНрдпрд╛ рд╕рдВрдЧрдгрдХрд╛рдЪреНрдпрд╛ рд╕реНрдерд┐рддреАрдЪреЗ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓ рдЖрдгрд┐ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдлрд╛рдЗрд▓реНрд╕ рд╣рдЯрд╡рд╛рд╡реНрдпрд╛ рд▓рд╛рдЧрддреАрд▓? рдмрд░рдВ, рдЬрд╛рд╡рд╛ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, рдХрдЪрд░рд╛ рдЧреЛрд│рд╛ рдХрд░рдгрд╛рд░рд╛ рддреБрдордЪреНрдпрд╛рд╕рд╛рдареА рд╣реЗ рдХрд░рддреЛ. рддреБрдордЪрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЪрд╛рд▓реВ рдЕрд╕рддрд╛рдирд╛ рдХрдЪрд░рд╛ рдЧреЛрд│рд╛ рдХрд░рдгрд╛рд░рд╛ рд╡рд╛рд░рдВрд╡рд╛рд░ рдЪрд╛рд▓рддреЛ: рд╣реЗ рддрд╛рдВрддреНрд░рд┐рдХрджреГрд╖реНрдЯреНрдпрд╛ рд╢рдХреНрдп рдЕрд╕рд▓реЗ рддрд░реА, рддреБрдореНрд╣рд╛рд▓рд╛ рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рдХреЙрд▓ рдХрд░рдгреНрдпрд╛рдЪреА рдХрд┐рдВрд╡рд╛ рдХрдорд╛рдВрдб рджреЗрдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдирд╛рд╣реА. рдирдВрддрд░ рдЖрдореНрд╣реА рдпрд╛рдмрджреНрджрд▓ рдЕрдзрд┐рдХ рдмреЛрд▓реВ рдЖрдгрд┐ рддреНрдпрд╛рдЪреНрдпрд╛ рдХрд╛рд░реНрдпрд╛рдЪреЗ рдЕрдзрд┐рдХ рддрдкрд╢реАрд▓рд╡рд╛рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реВ.

рдЬреЗрд╡реНрд╣рд╛ рдХрдЪрд░рд╛ рдЧреЛрд│рд╛ рдХрд░рдгрд╛рд░рд╛ рдПрдЦрд╛рджреНрдпрд╛ рд╡рд╕реНрддреВрд╡рд░ рдкреЛрд╣реЛрдЪрддреЛ, рддреЗрд╡реНрд╣рд╛ рддреА рд╡рд╕реНрддреВ рдирд╖реНрдЯ рдХрд░рдгреНрдпрд╛рдЖрдзреА, рддреЛ finalize()рдСрдмреНрдЬреЗрдХреНрдЯрд╡рд░ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкрджреНрдзрдд тАФ тАФ рдХреЙрд▓ рдХрд░рддреЛ. рд╣реА рдкрджреНрдзрдд рдСрдмреНрдЬреЗрдХреНрдЯрджреНрд╡рд╛рд░реЗ рд╡рд╛рдкрд░рд▓реЗрд▓реА рдЗрддрд░ рд╕рдВрд╕рд╛рдзрдиреЗ рд╕реЛрдбреВ рд╢рдХрддреЗ. рдкрджреНрдзрдд finalize()рд╡рд░реНрдЧрд╛рдЪрд╛ рднрд╛рдЧ рдЖрд╣реЗ Object. рдпрд╛рдЪрд╛ рдЕрд░реНрде рдЕрд╕рд╛ рдХреА рддреБрдореНрд╣реА рдкреВрд░реНрд╡реА рднреЗрдЯрд▓реЗрд▓реНрдпрд╛ equals(), hashCode()рдЖрдгрд┐ toString()рдкрджреНрдзрддреАрдВрд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯрдордзреНрдпреЗ рд╣реА рдкрджреНрдзрдд рдЖрд╣реЗ. рд╣реЗ рдЗрддрд░ рдкрджреНрдзрддреАрдВрдкреЗрдХреНрд╖рд╛ рд╡реЗрдЧрд│реЗ рдЖрд╣реЗ рдХреА рддреЗ - рдореА рд╣реЗ рдХрд╕реЗ рдареЗрд╡рд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ - рдЦреВрдк рд▓рд╣рд░реА.

рд╡рд┐рд╢реЗрд╖рддрдГ, рдПрдЦрд╛рджреНрдпрд╛ рд╡рд╕реНрддреВрдЪрд╛ рдирд╛рд╢ рд╣реЛрдгреНрдпрд╛рдЖрдзреА рддреЗ рдиреЗрд╣рдореА рдореНрд╣рдЯрд▓реЗ рдЬрд╛рдд рдирд╛рд╣реА. рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╣рд╛ рдПрдХ рдЕрдЪреВрдХ рдкреНрд░рдпрддреНрди рдЖрд╣реЗ. рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╕рдВрдЧрдгрдХрд╛рд▓рд╛ рдХрд╛рд╣реАрддрд░реА рдХрд░рд╛рдпрд▓рд╛ рд╕рд╛рдВрдЧрддреЛ рдЖрдгрд┐ рд╕рдВрдЧрдгрдХ рддреЗ рдХрд░рддреЛ. рдорд▓рд╛ рдЕрд╕реЗ рд╡рд╛рдЯрддреЗ рдХреА рддреБрдореНрд╣рд╛рд▓рд╛ рдпрд╛ рд╡рд░реНрддрдирд╛рдЪреА рдЖрдзреАрдЪ рд╕рд╡рдп рдЭрд╛рд▓реА рдЖрд╣реЗ, рдореНрд╣рдгреВрди рдкреНрд░рдердо рддреБрдореНрд╣рд╛рд▓рд╛ рд╣реА рдЦрд╛рд▓реАрд▓ рдХрд▓реНрдкрдирд╛ рд╕реНрд╡реАрдХрд╛рд░рдгреЗ рдХрдареАрдг рд╣реЛрдК рд╢рдХрддреЗ: "рд╡рд╕реНрддреВрдВрдЪрд╛ рдирд╛рд╢ рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА, рд╡рд░реНрдЧрд╛рдЪреА рдкрджреНрдзрдд рдХреЙрд▓ рдХреЗрд▓реА рдЬрд╛рддреЗ. finalize()рдХрд┐рдВрд╡рд╛ ObjectрдХрджрд╛рдЪрд┐рдд рддреА рдХреЙрд▓ рдХреЗрд▓реА рдЬрд╛рдд рдирд╛рд╣реА. рд╣реЗ рд╕рд░реНрд╡ рдпрд╛рд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдЕрд╕рддреЗ рддреБрдЭреЗ рдирд╢реАрдм!"

рддрд░реАрд╣реА, рддреЗ рдЦрд░реЗ рдЖрд╣реЗ. finalize()рдХреЗрд╕-рдмрд╛рдп-рдХреЗрд╕ рдЖрдзрд╛рд░рд╛рд╡рд░ рдкрджреНрдзрдд рдХреЙрд▓ рдХрд░рд╛рдпрдЪреА рдХреА рдирд╛рд╣реА рд╣реЗ Java рдорд╢реАрди рд╕реНрд╡рддрдГ рдард░рд╡рддреЗ . рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдкреНрд░рдпреЛрдЧ рдореНрд╣рдгреВрди рдЦрд╛рд▓реАрд▓ рдХреЛрдб рдЪрд╛рд▓рд╡рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░реВрдпрд╛:

public class Cat {

   private String name;

   public Cat(String name) {
       this.name = name;
   }

   public Cat() {
   }

   public static void main(String[] args) throws Throwable {
       for (int i = 0 ; i < 1000000; i++) {
           Cat cat = new Cat();
           cat = null; // This is when the first object becomes available to the garbage collector
       }
   }

   @Override
   protected void finalize() throws Throwable {
       System.out.println("Cat object destroyed!");
   }
}

рдЖрдкрдг рдПрдХ CatрдСрдмреНрдЬреЗрдХреНрдЯ рддрдпрд╛рд░ рдХрд░рддреЛ рдЖрдгрд┐ рдирдВрддрд░ рдХреЛрдбрдЪреНрдпрд╛ рдкреБрдвреАрд▓ рдУрд│реАрдд рдЖрдкрдг рддреНрдпрд╛рдЪрд╛ рдПрдХрдореЗрд╡ рд╕рдВрджрд░реНрдн рд╢реВрдиреНрдп рдмрд░реЛрдмрд░ рд╕реЗрдЯ рдХрд░рддреЛ. рдЖрдгрд┐ рдЖрдореНрд╣реА рддреЗ рд▓рд╛рдЦреЛ рд╡реЗрд│рд╛ рдХрд░рддреЛ. рдЖрдореНрд╣реА finalize()рдкрджреНрдзрдд рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рдУрд╡реНрд╣рд░рд░реЙрдб рдХреЗрд▓реА рдЬреЗрдгреЗрдХрд░реВрди рддреА рдХрдиреНрд╕реЛрд▓рд╡рд░ рдПрдХ рджрд╢рд▓рдХреНрд╖ рд╡реЗрд│рд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореБрджреНрд░рд┐рдд рдХрд░реЗрд▓ (рдкреНрд░рддреНрдпреЗрдХ рд╡реЗрд│реА рддреА рдПрдЦрд╛рджреА Catрд╡рд╕реНрддреВ рдирд╖реНрдЯ рдХрд░реЗрд▓). рдкрдг рдирд╛рд╣реА! рддрдВрддреЛрддрдВрдд рд╕рд╛рдВрдЧрд╛рдпрдЪреЗ рддрд░, рддреЗ рдорд╛рдЭреНрдпрд╛ рд╕рдВрдЧрдгрдХрд╛рд╡рд░ рдлрдХреНрдд 37,346 рд╡реЗрд│рд╛ рдЪрд╛рд▓рд▓реЗ! рдореНрд╣рдгрдЬреЗрдЪ, рдорд╛рдЭреНрдпрд╛ рдорд╢реАрдирд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЬрд╛рд╡рд╛ рдорд╢реАрдирдиреЗ 27 рдкреИрдХреА рдПрдХрджрд╛рдЪ finalize()рдкрджреНрдзрдд рдХреЙрд▓ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛.

рдЗрддрд░ рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ, рддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рдХрдЪрд░рд╛ рдЙрдЪрд▓рд▓рд╛ рдЧреЗрд▓рд╛. рд╣рд╛ рдХреЛрдб рд╕реНрд╡рддрдГрд╕рд╛рдареА рдЪрд╛рд▓рд╡рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рд╛: рдмрд╣реБрдзрд╛, рддреБрдореНрд╣рд╛рд▓рд╛ рд╡реЗрдЧрд│рд╛ рдкрд░рд┐рдгрд╛рдо рдорд┐рд│реЗрд▓. рдЬрд╕реЗ рддреБрдореНрд╣реА рдмрдШреВ рд╢рдХрддрд╛, finalize()рдХреНрд╡рдЪрд┐рддрдЪ рдПрдХ рд╡рд┐рд╢реНрд╡рд╛рд╕рд╛рд░реНрд╣ рднрд╛рдЧреАрджрд╛рд░ рдореНрд╣рдЯрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ :) рдореНрд╣рдгреВрди, рднрд╡рд┐рд╖реНрдпрд╛рд╕рд╛рдареА рдПрдХ рдЫреЛрдЯрд╛рд╕рд╛ рд╕рд▓реНрд▓рд╛: finalize()рдЧрдВрднреАрд░ рд╕рдВрд╕рд╛рдзрдиреЗ рдореБрдХреНрдд рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдкрджреНрдзрддреАрд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рд░рд╛рд╣реВ рдирдХрд╛. рдХрджрд╛рдЪрд┐рдд JVM рддреНрдпрд╛рд▓рд╛ рдХреЙрд▓ рдХрд░реЗрд▓, рдХрд┐рдВрд╡рд╛ рдХрджрд╛рдЪрд┐рдд рдирд╛рд╣реА. рдХреБрдгрд╛рд╕ рдард╛рдКрдХ?

рддреБрдордЪрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд┐рд╡рдВрдд рдЕрд╕рддрд╛рдирд╛ рддреНрдпрд╛рдЪреНрдпрд╛рдХрдбреЗ рдХрд╛рд╣реА рд╕рдВрд╕рд╛рдзрдиреЗ рдЕрд╕рддреАрд▓ рдЬреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрд╕рд╛рдареА рдЕрддреНрдпрдВрдд рдорд╣рддреНрддреНрд╡рд╛рдЪреА рдЖрд╣реЗрдд, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдПрдХ рдУрдкрди рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрд╢рди, рддреЗ рд╕реЛрдбрдгреНрдпрд╛рд╕рд╛рдареА рддреБрдордЪреНрдпрд╛ рд╡рд░реНрдЧрд╛рдд рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкрджреНрдзрдд рддрдпрд╛рд░ рдХрд░рдгреЗ рдЪрд╛рдВрдЧрд▓реЗ рдЖрд╣реЗ рдЖрдгрд┐ рдирдВрддрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдирд╕рддрд╛рдирд╛ рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рдХреЙрд▓ рдХрд░рд╛. рдЖрд╡рд╢реНрдпрдХ рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдЦрд╛рддреНрд░реА рдЖрд╣реЗ рдХреА рддреБрдордЪреНрдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдордЪреНрдпрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрд▓рд╛ рддреНрд░рд╛рд╕ рд╣реЛрдгрд╛рд░ рдирд╛рд╣реА. рд╕реБрд░реБрд╡рд╛рддреАрдкрд╛рд╕реВрдирдЪ, рдЖрдореНрд╣реА рдореНрд╣рдгрд╛рд▓реЛ рдХреА рд╕реНрдореГрддреАрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреЗ рдЖрдгрд┐ рдХрдЪрд░рд╛ рдХрд╛рдвреВрди рдЯрд╛рдХрдгреЗ рдЦреВрдк рдорд╣рддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗ, рдЖрдгрд┐ рд╣реЗ рдЦрд░реЗ рдЖрд╣реЗ. рдЕрдпреЛрдЧреНрдпрд░рд┐рддреНрдпрд╛ рд╕рдВрд╕рд╛рдзрдиреЗ рд╣рд╛рддрд╛рд│рдгреЗ рдЖрдгрд┐ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╡рд╕реНрддреВ рдХрд╢рд╛ рд╕рд╛рдл рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд рдпрд╛рдЪрд╛ рдЧреИрд░рд╕рдордЬ рдпрд╛рдореБрд│реЗ рдореЗрдорд░реА рд▓реАрдХ рд╣реЛрдК рд╢рдХрддреЗ. рд╣реА рд╕рд░реНрд╡рд╛рдд рдкреНрд░рд╕рд┐рджреНрдз рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЪреБрдХрд╛рдВрдкреИрдХреА рдПрдХ рдЖрд╣реЗ.

рдЬрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░рдиреЗ рддреНрдпрд╛рдВрдЪрд╛ рдХреЛрдб рдЪреБрдХреАрдЪрд╛ рд▓рд┐рд╣рд┐рд▓рд╛ рддрд░, рдкреНрд░рддреНрдпреЗрдХ рд╡реЗрд│реА рдирд╡реАрди рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╡рд╕реНрддреВрдВрд╕рд╛рдареА рдирд╡реАрди рдореЗрдорд░реА рд╡рд╛рдЯрдк рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ, рддрд░ рдЬреБрдиреНрдпрд╛, рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╡рд╕реНрддреВ рдХрдЪрд░рд╛ рдЧреЛрд│рд╛ рдХрд░рдгрд╛рд▒реНрдпрд╛рджреНрд╡рд╛рд░реЗ рдХрд╛рдврдгреНрдпрд╛рд╕рд╛рдареА рдЙрдкрд▓рдмреНрдз рдирд╕рддреАрд▓. рдЖрдореНрд╣реА рд░реЛрдмреЛрдЯ рд╡реНрд╣реЕрдХреНрдпреВрдо рдХреНрд▓рд┐рдирд░рд╢реА рд╕рд╛рдзрд░реНрдореНрдп рдмрдирд╡рд▓реНрдпрд╛рдореБрд│реЗ, рд░реЛрдмреЛрдЯ рд╕реБрд░реВ рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА, рддреБрдореНрд╣реА рдШрд░рд╛рднреЛрд╡рддреА рдореЛрдЬреЗ рд╡рд┐рдЦреБрд░рд▓реЗ, рдХрд╛рдЪреЗрдЪреА рдлреБрд▓рджрд╛рдгреА рдлреЛрдбрд▓реА рдЖрдгрд┐ рдордЬрд▓реНрдпрд╛рд╡рд░реАрд▓ рд▓реЗрдЧреЛ рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдмреНрд▓реЙрдХреНрд╕ рд╕реЛрдбрд▓реНрдпрд╛рд╕ рдХрд╛рдп рд╣реЛрдИрд▓ рдпрд╛рдЪреА рдХрд▓реНрдкрдирд╛ рдХрд░рд╛. рд░реЛрдмреЛрдЯ рдирдХреНрдХреАрдЪ рддреНрдпрд╛рдЪреЗ рдХрд╛рдо рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░реЗрд▓, рдкрд░рдВрддреБ рдХрдзреАрддрд░реА рддреЛ рдЕрдбрдХреЗрд▓.

рд░реЛрдмреЛрдЯ рд╡реНрд╣реЕрдХреНрдпреВрдо рдХреНрд▓рд┐рдирд░рд▓рд╛ рдпреЛрдЧреНрдпрд░рд┐рддреНрдпрд╛ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣рд╛рд▓рд╛ рдордЬрд▓рд╛ рдЪрд╛рдВрдЧрд▓реНрдпрд╛ рд╕реНрдерд┐рддреАрдд рдареЗрд╡рдгреНрдпрд╛рдЪреА рдЖрдгрд┐ рд░реЛрдмреЛрдЯ рд╣рд╛рддрд╛рд│реВ рд╢рдХрдд рдирд╕рд▓реЗрд▓реА рдХреЛрдгрддреАрд╣реА рдЧреЛрд╖реНрдЯ рдХрд╛рдвреВрди рдЯрд╛рдХрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рд╣реЗрдЪ рддрддреНрд╡ Java рдЪреНрдпрд╛ рдХрдЪрд░рд╛ рдЧреЛрд│рд╛ рдХрд░рдгрд╛рд▒реНрдпрд╛рд▓рд╛ рд▓рд╛рдЧреВ рд╣реЛрддреЗ. рдЬрд░ рдПрдЦрд╛рджреНрдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдордордзреНрдпреЗ рдЕрдиреЗрдХ рд╡рд╕реНрддреВ рдЙрд░рд▓реНрдпрд╛ рдЕрд╕рддреАрд▓ рдЬреНрдпрд╛ рд╕рд╛рдл рдХреЗрд▓реНрдпрд╛ рдЬрд╛рдК рд╢рдХрдд рдирд╛рд╣реАрдд (рдЬрд╕реЗ рдХреА рдЖрдордЪреНрдпрд╛ рд░реЛрдмреЛрдЯ рд╡реНрд╣реЕрдХреНрдпреВрдо рдХреНрд▓рд┐рдирд░рд╕рд╛рдареА рд╕реЙрдХ рдХрд┐рдВрд╡рд╛ рд▓реЗрдЧреЛ рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдмреНрд▓реЙрдХ), рдХрд╛рд╣реА рдХреНрд╖рдгреА рддреБрдордЪреА рдореЗрдорд░реА рд╕рдВрдкреЗрд▓. рдЖрдгрд┐ рддреЛ рдлрдХреНрдд рддреБрдордЪрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдирд╕реВ рд╢рдХрддреЛ рдЬреЛ рдлреНрд░реАрдЬ рд╣реЛрдИрд▓ тАФ рд╕рдВрдЧрдгрдХрд╛рд╡рд░ рдЪрд╛рд▓рдгрд╛рд░рд╛ рдкреНрд░рддреНрдпреЗрдХ рдЗрддрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрдК рд╢рдХрддреЛ. рддреНрдпрд╛рдВрдЪреНрдпрд╛рдХрдбреЗрд╣реА рдкреБрд░реЗрд╢реА рд╕реНрдореГрддреА рдирд╕рд╛рд╡реА.

рддреБрдореНрд╣рд╛рд▓рд╛ рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдирд╛рд╣реА. рддреЗ рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ рддреНрдпрд╛рдорд╛рдЧреАрд▓ рддрддреНрддреНрд╡ рд╕рдордЬреВрди рдШреЗрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.