{"id":73,"date":"2007-05-02T18:04:00","date_gmt":"2007-05-02T18:04:00","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=73"},"modified":"2007-05-02T18:04:00","modified_gmt":"2007-05-02T18:04:00","slug":"einmal-finalizier-vielleicht-mehrmals-der-gc","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2007\/05\/einmal-finalizier-vielleicht-mehrmals-der-gc\/","title":{"rendered":"Einmal Finalizier, vielleicht mehrmals der GC"},"content":{"rendered":"<p>Objekte von Klassen, die eine finalize()-Methode besitzen, kann Suns JVM nicht so schnell erzeugen und entfernen, wie Klassen ohne finalize(). Das liegt auch daran, dass der GC vielleicht mehrmals laufen muss, um das Objekt zu l\u00f6schen. Es gilt zwar, dass der GC aus dem Grund finalize() aufruft, weil das Objekt nicht mehr ben\u00f6tigt wird, es kann aber sein, dass aus der finalize()-Funktion die this-Referenz nach au\u00dfen gegeben wurde, sodass das Objekt wegen einer bestehenden Referenz nicht gel\u00f6scht werden kann. Das Objekt wird zwar irgendwann entfernt, aber der Finalizer l\u00e4uft nur einmal und nicht immer pro GC-Versuch. Einige Hintergr\u00fcnde erf\u00e4hrt der Leser unter <a href=\"http:\/\/www.iecc.com\/gclist\/GC-lang.html#Finalization\">http:\/\/www.iecc.com\/gclist\/GC-lang.html#Finalization<\/a>. <\/p>\n<p>L\u00f6st eine Anweisung in finalize() eine Ausnahme aus, so wird diese ignoriert. Das hei\u00dft aber, dass die Finalizierung des Objekts stehen bleibt. Den GC beeinflusst das in seiner Arbeit aber nicht.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Objekte von Klassen, die eine finalize()-Methode besitzen, kann Suns JVM nicht so schnell erzeugen und entfernen, wie Klassen ohne finalize(). Das liegt auch daran, dass der GC vielleicht mehrmals laufen muss, um das Objekt zu l\u00f6schen. Es gilt zwar, dass der GC aus dem Grund finalize() aufruft, weil das Objekt nicht mehr ben\u00f6tigt wird, es [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[1],"tags":[],"class_list":["post-73","post","type-post","status-publish","format-standard","hentry","category-allgemein"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/73","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/comments?post=73"}],"version-history":[{"count":0,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/73\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=73"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=73"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=73"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}