Sobes.tech
Junior

Java-ში final და finalize საკვანძო სიტყვები რა არის და რა განსხვავებები აქვთ?

sobes.tech AI

პასუხი AI-სგან

Java-ში, final და finalize განსხვავებული კონცეფციებია და სხვადასხვა მიზნებისთვის გამოიყენება:

  • final არის საკვანძო სიტყვა, რომელიც გამოიყენება:
    • კონსტანტების (ცვლადების, რომლებიც ვერ იცვლება ინიციალიზაციის შემდეგ) დასახელებისთვის.
    • მეთოდების, რომლებიც არ შეიძლება გადაწერილ იქნას ქვესინფებში.
    • კლასების, რომლებიც არ შეიძლება მემკვიდრეობით მიიღოს.

მაგალითი:

final int x = 10; // x ვერ იცვლება
final class MyClass {} // კლასი ვერ მემკვიდრეობით მიიღება
final void myMethod() {} // მეთოდი ვერ გადაწერილ იქნას
  • finalize() არის მეთოდი კლასი Object-ის, რომელიც გამოიძახება გარბიჯის კრეფის მიერ ობიექტის მეხსიერებიდან წაშლამდე. ის განკუთვნილია რესურსების გათავისუფლებისთვის, მაგრამ მისი გამოყენება არ არის რეკომენდებული, რადგან მისი გამოძახება არ არის გარანტირებული და შეიძლება გამოიწვიოს გაურკვეველი ქცევა.

მაგალითი:

@Override
protected void finalize() throws Throwable {
    // რესურსების გათავისუფლება
    super.finalize();
}

განსხვავებები:

  • final არის საკვანძო სიტყვა კოდის ცვლილების კონტროლისთვის.
  • finalize არის მეთოდი, რომელიც გამოიყენება ნაგვის შეგროვებამდე სისუფთავის დასადგენად, და არის მოძველებული და არ არის რეკომენდებული გამოყენებისთვის.