Új hozzászólás Aktív témák
-
Szmeby
tag
SajatClass sajat = new SajatClass();
try {
sajat.futtat();
} finally {
sajat.ment();
}
Ha kivétel történik a futtás során, a mentés akkor is megtörténik. Ez inkább javallott, mint a finalize() funkció használata. Vagy akár a sima metódus szekvencia. Mondjuk ha hiba esetén mégsem szeretnél menteni, akkor felejtsd el, amit írtam, arra tényleg jó a szekvencia.Neked nem kell kézzel semmit sem takarítani, a garbage collector majd teszi a dolgát, nincs destruktor. De ezt már írták.
-
Destruktor nincs. Finalizálás van, de az a garbage collector futásához kapcsolódik, és nincs garancia arra, hogy egy adott objektum esetén valaha is lefut - program exit-kor meg pláne, hiszen akkor majd az oprendszer úgyis takarít...
Nem teljesen értem, hogy minek az exit hook. Egy java programnak jól meghatározott exit pontjai vannak: pl. a
main()
return pontja, vagy aSystem.exit()
hívás, ezért ha kilépéskor akarsz menteni, akkor ezek elé kell elhelyezni a megfelelő kódot. Ha a program interaktív, akkor nyilván lesz valahol egy "exit" menüpont, vagy window close hook, ahová a mentés ugyancsak beköthető. Ha valamilyen egyéb keretrendszert használsz (pl. servlet engine), ami saját maga intézi a startup és shutdown tevékenységet, akkor ott lesznek specifikus exit hook-ok (pl. a servletnek vaninit()
megdestroy()
eljárása, vagy ott aServletContextListener
).Mint arra fentebb már felhívták a figyelmet, ha a program abnormális módon terminál (kilövik az oprendszerből, vagy pl.
OutOfMemoryError
kivétel keletkezik), akkor semmilyen exit hook nem fog működni. Ha erre is fel szeretnél készülni, akkor érdemesebb inkább minden alkalommal automatikusan menteni, ha az ini fájlban tárolt adatok változnak. (És ebben az esetben a kilépéskori mentés eleve felesleges is.) Persze nem tudom mi lenne itt az adatkör: az inicializációs fájl mint fogalom, néhány kilobájtnyi ritkán változó adatot sugall. -
Szmeby
tag
Java konfigurációk esetén nekem először a properties fájl ugrik be, faék egyszerűségű textfile kulcs-érték párokkal. Lásd mondjuk: [link]
Ennek "modernebb", spórolósabb változata a yaml, de ha neked az ini tetszik, biztos az is jó. Mondjuk ha nem kötött, hogy csak ini lehet, én ezért nem hoznék be egy libet, hogy néhány konfig cuccot tároljak.Nincs az a metódus, ami megfut, ha azt mondod a programnak, hogy kill.
Persze ha normál terminálásra gondolsz, akkor izé... nem értem a kérdést.
A main metódus a be és kilépési pont. Megírod a kezecskéddel, hogy milyen esemény hatására terminálódjon a programod, és előtte azt mentesz, amit akarsz.Esetleg a jvm shutdown hook-ra gondoltál? Lehet haszna, de nézz utána, hogy mikor hogyan működik, mert egy egyszerű programnál én nem biztos, hogy szórakoznék vele.
---
Trubad Úr. Én szívesen megcsinálom neked. 1M HUF lesz.
Új hozzászólás Aktív témák
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Anglia - élmények, tapasztalatok
- Szeged és környéke adok-veszek-beszélgetek
- Milyen okostelefont vegyek?
- Peugeot, Citroën topik
- LordAthis: AI Kérdés érkezett - 3600 soros Spagetti kód refaktorálása és budget
- OLED TV topic
- sziku69: Fűzzük össze a szavakat :)
- Filmgyűjtés
- Allegro vélemények - tapasztalatok
- Milyen videókártyát?
- További aktív témák...
- Apple iPhone 12 128GB, Kártyafüggetlen, 1 Év Garanciával
- HIBÁTLAN iPhone 11 Pro 64GB Space Grey -1 ÉV GARANCIA - Kártyafüggetlen, MS2137
- Honor X6a 128GB, Kártyafüggetlen, 1 Év Garanciával
- Felsőkategóriás merev csöves Gamer PC! I7 12700KF / RTX 3090 24GB / 32GB DDR5 / 1TB SSD!
- Huawei 4G CPE Pro3 4G Router
Állásajánlatok
Cég: FOTC
Város: Budapest