Alapvetően nem is értem, mi a probléma. Átlag java fejlesztésnél nem használunk ilyen erőforrásokat (összesen egy dolog jut eszembe, ami hasonló, az a jdbc connection, de azt
meg egy try-catch-finally és egy connection pool tökéletesen lekezeli).
Szóval java-ban (és c#-ban is) a fejlesztés 0.001%-ban találkozik ezzel a problémával az ember, az összes többi esetben viszont ott van az a kényelem, hogy nem kell azzal szórakozni,hogy most heap-en vagy stack-en hozok létre valamit, hogy most pointer-t vagy referenciát ad át, hogy copy constructor-t irogasson, és az hogy legyen jó, hogy hogyan hegessze bele a kódba a mások által csinált, esetleg homlokegyenesen más logikával készült library-t, és a többi. Java esetén ráadásul az objektumok létrehozása baromi gyors, a gond ott szokott lenni, amikor sok objektumot egyszerre próbál felszabadítani a GC, de a 6-os 7-es 8-as java-ban a párhuzamos GC-vel már igazából ez sem jelent problémát.