
educationDec 28, 201511:36pending
025: Effective Java for Android developers : Item 7
About this episode
In this mini Fragment, we introduce Joshua's seventh Item and a momentous end to the first chapter: Avoid finalizers
Stay tuned for more items from our "Effective Java for Android developers" Fragment series.
Show Notes
Avoid finalizers
- If you don't know what they are, ignorance is bliss. If you know what they are, avoid them!
- Finalizers in Java != destructors in C++ (C++ counterparts to constructors).
- In C++ destructors
- you reclaim resources here (Java has GC)
- you also reclaim non-memory resources (use the try-finally block in Java)
- (unpredicatable amt of time between object becoming unreachable and finalizer being executed) Never do anything time critical in finalizer!
- System.gc + System.runFinalization increase chances - no guarantee
- System.runFinalizersOnExit + Runtime.runFinalizersOnExit are the ones that do - but they are fatally flawed
- Java 7 has try with resources, which is also interesting and auto-closeables. [Android] devs can only dream of these.
- If an uncaught exception is thrown in a finalizer, it is ignored, and the finalization abruptly terminates.
- Severe performance penalty for using finalizers - (one e.g.) time to create and destroy simple object goes from 5.6ns -> 2400ns
- Only valid use: as a safety net or to terminate noncritical native resources.
- [Android] you're probably better off using Android's lifecycle methods.
Contact
- @fragmentedcast [twitter.com]
- @donnfelker [twitter.com]
- @kaushikgopal [twitter.com]
Get every episode summarized
Each time Fragmented - AI Developer Podcast publishes, we email you a written briefing from the transcript — the topics, who appeared, and any specific claims, with the ad reads skipped.
Email me new episodesFree for 3 shows. No card needed.
Hosts & guests
No transcript yet
This episode has not been transcribed. Request it and it moves to the front of the queue.
More episodes
More from Fragmented - AI Developer Podcast

311 - Self learning harnesses are here
Fragmented - AI Developer Podcast
Sep 6, 202612:41completed

310 - Mitchell Hashimoto on Ghostty & His Agentic Coding Workflow
Fragmented - AI Developer Podcast
Apr 14, 202659:43failed

309 - Background Agents
Fragmented - AI Developer Podcast
Apr 1, 202625:37failed

308 - How Image Diffusion Models Work - the 20 minute explainer
Fragmented - AI Developer Podcast
Mar 24, 202624:44failed