Összehasonlító táblázat
Az összehasonlítás alapja | dobja () | véglegesítés () |
---|---|---|
Meghatározott | A módszer () az IDisposable interfészben van meghatározva. | A java.lang.object osztályban definiált módszer véglegesíti () azonosítóját. |
Szintaxis | public void Elveti () { // A kódot itt el kell dobni } | védett void finalize () { // itt véglegesítési kód } |
hivatkozni | A módszert () a felhasználó hívja fel. | A módszer véglegesítése () a szemétgyűjtőre hivatkozik. |
Célja | A módszer eldobása () a kezeletlen erőforrások felszabadítására szolgál, amikor meghívja. | A módszer véglegesítése () a kezeletlen erőforrások felszabadítására szolgál, mielőtt az objektum megsemmisülne. |
Végrehajtás | A módszer () eldobható, ha szoros () módszer van. | A módszert véglegesíteni kell () a nem kezelt erőforrások esetében. |
Hozzáférési specifikáció | A módszer () a nyilvánosságra kerül. | A módszer véglegesítése () privátnak minősül. |
Akció | A módszer () a gyorsabb és azonnal eltávolítja az objektumot. | A módszer véglegesítése lassabb az ártalmatlanításhoz képest |
Teljesítmény | A módszer () végrehajtja a pillanatnyi műveletet, így nem befolyásolja a weboldalak teljesítményét. | A módszer véglegesítése () lassabb hatással van a webhelyek teljesítményére. |
Az ártalmatlanítás meghatározása ()
Az eldobható () módszer az osztály tárgya által birtokolt kezeletlen erőforrásokat bocsátja ki. A kezeletlen erőforrások fájlok, adatcsatlakozások, stb. A módszer az eldobható felületen van megadva, és az osztály által végrehajtott, az IDisposable interfész alkalmazásával. Ezt a módszert nem hívják automatikusan. A programozónak manuálisan kell végrehajtania azt, amikor létrehoz egy egyéni osztályt, amelyet mások használnak. A módszer a következő szintaxist tartalmazza:
public void dispatch () {// Kód eltávolítása itt}
A fenti szintaxisban megfigyelhető, hogy a módszert nyilvánosnak nyilvánítják. Ennek az az oka, hogy ezt az eljárást az IDisposable interfész határozza meg, és ezt az interfészt megvalósító osztálynak kell végrehajtania. Tehát, a megvalósító osztály hozzáférhetőségének biztosítása érdekében a módszert nyilvánosnak nyilvánítják.
Ezt a módszert kézzel kell meghívni egy program kódjával, ahogyan azt a végrehajtás céljából végrehajtják. A módszerek teljesítménye gyors, és azonnal felszabadítja az osztály tárgyának birtokában lévő erőforrásokat.
A véglegesítés meghatározása ()
A végső () metódust az objektumosztály határozza meg. A tisztításhoz használják. Ezt a módszert a szemétgyűjtő hívja meg, ha egy objektum referenciáját hosszú ideig nem használják. A szemétgyűjtő automatikusan felszabadítja a kezelt erőforrásokat, de ha a kezeletlen erőforrásokat, például a fájlkezelőt, az adatkapcsolatot stb. A szemétgyűjtő a metódust véglegesíti (), mielőtt az objektumot teljesen elpusztítja.
A módszer szintaxisa befejeződik ():
védett void finalize () {// véglegesítési kód itt}
A fenti szintaxisban a módszer véglegesítése () védettnek minősül. Ennek oka az, hogy a módszer véglegesítése () nem érhető el az osztályon kívül, és csak a szemétgyűjtő számára érhető el.
A véglegesítés () módszer hatással van a teljesítményre, mivel nem szabad azonnal felszabadítani a memóriát. A C # -nél a véglegesítési eljárást a destruktorokkal automatikusan hívják.
Kulcsfontosságú különbségek a () és a véglegesítés () között
- A módszer () az ID-re választható felületen van meghatározva. Másrészt, a módszer véglegesítése () az osztályobjektumban van meghatározva.
- A módszert a programozónak manuálisan kell hívnia a kódon belül, míg a véglegesítést a szemétgyűjtő automatikusan meghívja, mielőtt elpusztítja az objektumot.
- A módszert bármikor meg lehetne hívni, míg a módszer véglegesítése a szemétgyűjtőre hivatkozik, amikor megállapítja, hogy az objektumot hosszú ideig nem hivatkozták.
- A módszert az (ID) elhelyezhető felület végrehajtása után egy osztályban hajtjuk végre. A módszert véglegesíteni () csak a nem kezelt erőforrásokra kell végrehajtani, mert a kezelt erőforrásokat automatikusan eltávolítja a szemétgyűjtő.
- A módszer hozzáférési specifikációja () a nyilvánosságra van hozva, ahogy azt az IDisposable interfész határozza meg, és azt az az osztály fogja végrehajtani, amely ezt az interfészt megvalósítja, ezért nyilvánosnak kell lennie. Másrészről a módszer véglegesítése () védett hozzáférési specifikátorral rendelkezik, hogy ne legyen elérhető az osztályon kívüli bármely tag számára.
- A módszer () a gyors, és így azonnal felszabadítja az objektumot, így nem befolyásolja a teljesítmény költségét. A módszer véglegesítése () lassabb, és nem mentesíti az objektumban lévő erőforrásokat azonnal.
Következtetés:
Javasoljuk, hogy a módszer véglegesítése () szerint a módszer () használata véglegesítse (). Szükség esetén bármikor hívható.