Увод у Деструцтор на Јави

Деструктори у Јави могу се научити методом финализације на Јави. Концепт је исти као и метода финализације. Јава ради за све осим за деструктор уз помоћ Гарбаге цоллецтион. Стога, у случају да постоји потреба за позивањем деструктора, то се може учинити уз помоћ методе финализације. Ова метода није независна јер се ослања на скупљање смећа. Сакупљач смећа је нит којом се брише или уништава неискориштени објект у подручју гомиле. Реците ако је објект повезан са датотеком или реците неку апликацију базе података или мрежне везе, прије брисања или уништавања објекта он мора затворити све везе повезане с тим ресурсима прије него што се обави смеће. Ово затварање функција врши се позивањем методе финализације.

Дефиниција Деструктора у Јави

„Деструктор је метода која се назива када се догоди уништавање објекта. „Главни циљ деструктора је ослобађање додељене меморије и чишћење ресурса попут затварања отворених датотека, затварања веза са базама података, затварања мрежних ресурса итд.,

Синтакса

Class Object
(
protected void finalize()
(
//statements like closure of database connection
)
)

Како деструктор ради на Јави?

Деструктор има методу финализе () у јави који је сличан деструктору у Ц ++. Када се објекти створе, они се чувају у великој меморији. Они су доступни главним или подређеним нитима. Дакле, када главни објекти или његове подређене нити ове објекте више не користе, они постају прихватљиви за прикупљање смећа и меморија која је сада стечена постаје доступна новим објектима који се креирају. Прије него што је објект смеће прикупљено сакупљачем смећа, ЈРЕ (Јава Рунтиме Енвиронмент) позива методу финализе () да затвори улазно-излазне токове, везе базе података, мрежне везе итд. Имајте на уму да је позвана метода финализације заштићена. Зашто је финализирање заштићено јер га може позвати или основна класа или изведена класа? метода финализације присутна је у класи Објецт. Према томе, у случају да желите да ову методу финализације назовете из других објеката, можете је променити у заштићену.

Синтакса:

protected void finalize throws Throwable()
(
//Keep some resource closing operations here
)

Методе финализације ()

  1. метода финализе () је заштићена како је дефинирано у класи јава.ланг.Објецт.
  2. метода финализе () позива се само једном.
  3. да бисте надјачали методу финализе (), морате експлицитно позвати методу финализе.
  4. ГЦ () је услуга ЈВМ-а за извршавање Гарбаге Цоллецтион, назива се када је хепа меморија пуна и потребна јој је меморија за нове долазне објекте.
  5. ЈВМ игнорише све изузетке осим неконтролираних изузетака који се дешавају у методи финализације.

Пример # 1

У доњем програму се позива метода довршавања класе Стринг умјесто методе финализације која је присутна у програму. Овде се превладава метода финализације.

Шифра:

public class Demo
(
public static void main(String() args)
(
Integer i = new Integer(2);
i = null;
System.gc();
System.out.println("In the Main Method");
)
protected void finalize()
(
System.out.println("object is garbage collected ");
)
)

Излаз:

Пример бр. 2

У доњем програму интерно се позива метода финализације, није потребан експлицитни позив.

Код

public class Demo
(
public static void main(String() args)
(
Demo dm = new Demo();
dm = null;
System.gc();
System.out.println("In the Main Method");
)
protected void finalize()
(
System.out.println("object is garbage collected ");
)
)

Излаз:

Пример бр. 3

У доњем програму, финализација је позвана интерно у зависности од броја створених објеката.

Код

public class NewProgram(
public void finalize()(
System.out.println("object is garbage collected");
)
public static void main(String args())(
NewProgram np1=new NewProgram(); //first instantiation of Class NewProgram
NewProgram np2=new NewProgram(); //second instantiation of Class NewProgram
np1=null;
np2=null;
System.gc();
System.out.println("In the Main Method");
)
)

Излаз:

Пример бр. 4

У програму у наставку креирају се два објекта, а финализација се позива једном када оба објекта показују на исти.

Шифра:

public class NewProgram(
public void finalize()(
System.out.println("garbage collected");
)
public static void main(String args())(
NewProgram np1=new NewProgram(); //first instantiation of Class NewProgram
NewProgram np2=new NewProgram(); //second instantiation of Class NewProgram
np1 = np2; // both now pointing to same object
System.gc();
System.out.println("in the Main Method");
)
)

Излаз:

Пример бр. 5

У доњем програму, метода финализације ће се два пута експлицитно и интерно позвати и једно и друго.

Код

public class Demo
(
public static void main(String() args)
(
Demo dm = new Demo();
dm.finalize();
dm = null;
System.gc();
System.out.println("In the Main Method");
)
protected void finalize()
(
System.out.println("garbage collected ");
)
)

Излаз:

Пример бр. 6

У доњем програму постоји аритметичка изнимка која се зове у методи финализирања, јер се изричито назива што даље узрокује изузетак и зауставља извршење преосталог програма.

Шифра:

public class Demo
(
public static void main(String() args)
(
Demo dm = new Demo();
dm.finalize();
dm = null;
System.gc();
System.out.println("In the Main Method");
)
protected void finalize()
(
System.out.println("garbage collected ");
System.out.println(10 / 0);
)
)

Излаз:

Пример бр. 7

У доњем програму није изузетак који се зове јер се не позива изричито и наставља извршење преосталог програма.

Шифра:

public class Demo
(
public static void main(String() args)
(
Demo dm = new Demo();
dm = null;
System.gc();
System.out.println("In the Main Method");
)
protected void finalize()
(
System.out.println("garbage collected ");
System.out.println(10 / 0);
)
)

Излаз:

Предности Деструктора у Јави

  1. Деструктор уништава вредност коју је конструктор створио у простор у хеап меморији.
  2. Деструктор се увек позива на крају програма.
  3. Деструктор никада није преоптерећен Деструктор не узима ниједан аргумент.
  4. Нема потребе за дефинисањем нашег конструктора, преводилац креира за нас један.

Закључак

Надам се да је овај чланак био занимљив и информативан за вас како бисте научили тему. Овај чланак је обухватио скоро све теме које тражите и надам се да испуњавају све ваше захтеве.

Препоручени чланци

Ово је био водич за Деструктор на Јави. Овдје смо разговарали о дефиницији деструктора у Јави, како деструктор дјелује у јави помоћу метода, предности и различитих примјера. Можете и да прођете кроз наш други предложени чланак да бисте сазнали више -

  1. Шта је Јава интерфејс?
  2. Шта је Јава интерфејс?
  3. Јава Алатке
  4. Изглед у Јави
  5. Конструктор и деструктор на Јави
  6. Примери Деструктора у Питхону
  7. ЈРЕ вс ЈВМ | Топ 8 разлика са (Инфограпхицс)
  8. Деструктор у ПХП-у са примерима

Категорија: