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 բլոկների միջոցով: