Sobes.tech
Middle

Ինչ է Java-ում final և finalize բանալի բառերը և ինչն է նրանց տարբերությունը։

sobes.tech AI

Պատասխան AI-ից

final - բանալի բառ նշելու համար, որ նշում է անփոփոխություն:

  • Փոփոխական: Հղումը կամ արժեքը չի կարող փոխվել ինիցիալիզացիայից հետո:
  • Մեթոդ: Մեթոդը չի կարող վերագրել ժառանգական դասում:
  • Դաս: Դասը չի կարող ժառանգվել:

finalize() - մեթոդ, որը կանչվում է գարջբջի հավաքողից (Garbage Collector) նախքան օբյեկտը հեռացվի հիշողությունից: Այն գտնվում է Object դասում և նախատեսված է արտաքին ռեսուրսների ազատման համար:

Տարբերություններ:

final finalize()
Բառային բանալի բառը Մեթոդը
Նշում է անփոփոխություն Կանչվում է օբյեկտի հեռացման նախորդը
Կապված է հայտարարության հետ Կապված է օբյեկտի կյանքի ցիկլին
Կիրառվում է փոփոխականների, մեթոդների, դասերի վրա Միայն օբյեկտների վրա

Օրինակ final-ի օգտագործման:

public class FinalExample {
    final int finalVariable = 10;

    final void finalMethod() {
        // անփոփոխ մեթոդի տրամաբանություն
    }
}

final class FinalClass {
    // բովանդակություն
}

Օրինակ finalize()-ի օգտագործման:

public class FinalizeExample {
    @Override
    protected void finalize() throws Throwable {
        try {
            // արտաքին ռեսուրսների մաքառում, օրինակ, կապը փակել
            System.out.println("Finalizing FinalizeExample object...");
        } finally {
            super.finalize(); // միշտ կանչեք super.finalize()
        }
    }
}

Մեծ կարևորություն: finalize()-ի օգտագործումը չի խորհուրդ տրվում ժամանակակից Java-ում, քանի որ այն աննախադեպ ժամանակով է գործարկվում և կարող է առաջացնել կատարողականության խնդիրներ: Ռեսուրսների կառավարումը ավելի լավ է իրականացնել try-with-resources բլոկների միջոցով: