Peamine erinevus - hävitage () vs lõpule viige ()
Peamine erinevus hävitamise () ja lõpuleviimise () vahel on see, et programmeerija peab selgesõnaliselt kutsuma käsutama (), samal ajal kui objekti lõplikule hävitamisele viitab prügikoguja lõplikule ().
Dispose () on meetod haldamata ressursside, näiteks failide, objekti käes olevate voogude sulgemiseks või vabastamiseks. Lõplik viimistlus on meetod puhastusoperatsioonide teostamiseks praeguse objekti valdamata ressurssidel enne objekti hävitamist.
SISU
1. Ülevaade ja põhierinevus
2. Mis on hävitamine ()
3. Mis on lõpuleviimine ()
4. Sarnasus hävitamise () ja lõpuleviimise () vahel
5. Kõrvuti võrdlus - hävitage () vs lõpetage () tabelivormis
6. Kokkuvõte
Mis on käsutada ()?
. NET raamistiku üks olulisemaid eeliseid on see, et see tagab automaatse prügikoristuse. See vabastab automaatselt kasutamata objektide mälu. Programmeerimiskeeltes nagu C ja C ++ peab programmeerija ise mäluhaldusega hakkama saama. Kuid sellistes keeltes nagu C #, mis on üles ehitatud. NET raamistikule, pakub prügikoguja. See aitab mälu hallata. Seda ei saa kasutada haldamata mäluressursside vabastamiseks. Selle ülesande saavutamiseks saab kasutada meetodit hävitada ().
Meetodit hävitada () saab kasutada selliste ressursside nagu andmebaasiühendused, failikäsitlejad jne vabastamiseks. Seda meetodit ei kutsuta automaatselt. Seetõttu peaks programmeerija selle meetodi rakendama. Niipea kui sellele meetodile tuginetakse, vabaneb konkreetse haldamata ressursi mälu. See meetod on deklareeritud liideses IDisposeable.
Mis on lõplik ()?
Lõpliku vormistamise meetodit kutsub prügikoguja alles siis, kui viidet objektile enam ei kasutata. Seda meetodit nimetatakse vahetult enne objekti hävitamist. Seda meetodit rakendatakse destruktori abil. Lõpliku vormistamise meetod on määratletud klassis java.lang.object. See meetod tunnistatakse kaitstuks. Teiste klasside juurdepääsu vältimiseks ei kuuluta avalikuks. Üldiselt võib viimistlusmeetod minimeerida programmi jõudlust, kuna see ei vabasta mälu koheselt.
Milline on käsutamise () ja lõpuleviimise () sarnasus?
Nii käsutamist () kui ka vormistamist () saab kasutada haldamata ressursi jaoks eraldatud mälu vabastamiseks
Mis vahe on käsutuses () ja lõpuleviimisel ()?
Erinev artikkel keskel enne tabelit
hävitama () vs lõpule viima () |
|
Dispose () on meetod haldamata ressursside, näiteks failide, objekti käes olevate voogude sulgemiseks või vabastamiseks. | Lõpetamine on meetod praeguse objekti valduses olevate haldamata ressursside puhastamiseks enne objekti hävitamist. |
Eesmärk | |
Kõrvaldamismeetodit kasutatakse haldamata ressursside vabastamiseks, kui see käivitatakse. | Lõpetamismeetodit kasutatakse haldamata ressursside vabastamiseks enne objekti hävitamist. |
Määratletud liides või klass | |
Dispose () on määratletud liideses IDisposable. | Lõplik vormistamine () on määratletud klassis java.lang.object. |
Kutsumine meetod | |
Programmeerija kutsub kasutama hävitamismeetodit. | Lõpliku vormistamise meetodile tugineb prügikoguja. |
Juurdepääsu täpsustus | |
Kõrvaldamismeetod on avalik. | Lõpetamismeetod on kaitstud. |
Kiirus | |
Kõrvaldamismeetodile pöördutakse koheselt. | Lõpetamismeetodit kasutatakse aeglaselt. |
Performance | |
Kõrvaldamine ei vähenda programmi jõudlust. | Lõpetamismeetod võib minimeerida programmi jõudlust. |
Kokkuvõte - hävitage () vs lõpule viige ()
Selles artiklis käsitleti erinevust C # -is olevate hävitamis- ja lõplike meetodite vahel. Erinevus hävitamise () ja lõpuleviimise () vahel seisneb selles, et programmeerija peab selgesõnaliselt kutsuma käsutama (), samal ajal kui objekti hävitamiseks viitab prügikoguja lõplikule vormistamisele ().