Avainero – hävitä () vs. viimeistele ()
Tärkein ero hävittämisen () ja viimeistelyn () välillä on, että ohjelmoijan on nimenomaisesti kutsuttava hävittämistä () kun taas jätteenkerääjä kutsuu viimeistelyn () ennen objektin tuhoamista.
Hävitys () on tapa sulkea tai vapauttaa hallitsemattomia resursseja, kuten tiedostoja tai kohteen hallussa olevia virtoja. Viimeistely on menetelmä puhdistaa nykyisen kohteen hallussa oleville hallitsemattomille resursseille ennen objektin tuhoamista.
Mikä on dispose()?
Yksi sovelluksen tärkeimmistä eduista. NET-kehys on, että se tarjoaa automaattisen roskatkeräyksen. Se vapauttaa automaattisesti muistin kohteista, joita ei käytetä. Ohjelmointikielissä, kuten C ja C++, ohjelmoijan on hoidettava muistinhallinta itse. Mutta kielillä, kuten C, joka on rakennettu. NET-kehykseen, tarjoaa roskienkerääjän. Se auttaa hallitsemaan muistia. Sitä ei voi käyttää hallitsemattomien muistiresurssien vapauttamiseen. Hävitä () -menetelmää voidaan käyttää tämän tehtävän suorittamiseen.
Hävitä () -menetelmää voidaan käyttää vapauttamaan resursseja, kuten tietokantayhteyksiä, tiedostokäsittelijöitä jne. Tätä menetelmää ei kutsuta automaattisesti. Siksi ohjelmoijan tulisi ottaa tämä menetelmä käyttöön. Heti kun tätä menetelmää käytetään, tietyn hallitsemattoman resurssin muisti vapautetaan. Tämä menetelmä on ilmoitettu rajapinnassa IDisposeable.
Mikä on viimeistely ()?
Roskatkerääjä kutsuu viimeistelymenetelmän vain, kun viittausta objektiin ei käytetä enempää. Tätä menetelmää kutsutaan juuri ennen objektin tuhoamista. Tämä menetelmä toteutetaan destruktorin avulla. Viimeistelymenetelmä määritellään java.lang.object-luokassa. Tämä menetelmä on julistettu suojatuksi. Sitä ei ole julistettu julkiseksi muiden luokkien pääsyn välttämiseksi. Kaiken kaikkiaan viimeistelymenetelmä voi minimoida ohjelman suorituskyvyn, koska se ei vapauta muistia välittömästi.
Mikä on samank altaisuus hävittämisen () ja viimeistelyn () välillä?
Sekä dispose () että finalize() voidaan käyttää vapauttamaan hallitsemattomalle resurssille varattu muisti
Mitä eroa hävittämisen () ja viimeistelyn () välillä on?
hävittäminen () vs viimeistely () |
|
Hävittäminen () on tapa sulkea tai vapauttaa hallitsemattomia resursseja, kuten tiedostoja tai kohteen hallussa olevia virtoja. | Viimeistely on menetelmä puhdistaa nykyisen objektin hallussa oleville hallitsemattomille resursseille ennen objektin tuhoamista. |
Tavoite | |
Hävitysmenetelmää käytetään hallitsemattomien resurssien vapauttamiseen, kun sitä vedetään. | Viimeistelymenetelmää käytetään hallitsemattomien resurssien vapauttamiseen ennen objektin tuhoutumista. |
Määritetty käyttöliittymä tai luokka | |
Hävitys () on määritelty rajapinnassa IDkertakäyttöliittymä. | Viimeistely () on määritelty java.lang.object-luokassa. |
Kutsumenetelmä | |
Ohjelmoija kutsuu poistomenetelmän. | Roskatkerääjä käyttää viimeistelymenetelmää. |
Käyttöoikeusmääritys | |
Hävitystapa on julkinen. | Viimeistelytapa on suojattu. |
Nopeus | |
Hävitysmenetelmä käynnistyy välittömästi. | Viimeistelymenetelmä vedetään hitaasti. |
Suorituskyky | |
Hävittäminen ei minimoi ohjelman suorituskykyä. | Viimeistelymenetelmä saattaa minimoida ohjelman suorituskyvyn. |
Yhteenveto – hävitä () vs. viimeistele ()
Tässä artikkelissa käsiteltiin C:n hävittämis- ja viimeistelymenetelmien eroa. Ero hävittämisen () ja viimeistelyn () välillä on se, että ohjelmoijan on nimenomaisesti kutsuttava poisto () -toimintoa, kun taas jätteenkerääjä kutsuu viimeistelyn () ennen objektin tuhoamista.