Erre írtam volt:
A kioptimalizálás a JVM dolga, a programozó ne optimalizálgasson feleslegesen, főleg, ha nem is ért hozzá, mert sokszor több kárt csinál, mint hasznot.
Ha az ember optimalizálni akar nyelvi szinten, akkor ehhez kőkeményen tudnia kell, hogy ebből mit csinál a fordító, és mit csinál a JVM, majd mit csinál a JIT. Ha ezekkel nem vagy tisztában, akkor inkább ne is optimalizálj, mert tapasztalataim szerint abból később refaktor lesz.
A felesleges GC futásokat és a memleak gyártó kódokat többnyire a C/C++ irányból érkező programozók ejtik, mivel nem ismerik a GC működését, részben utálják is, és többnyire nem tudják, nem értik, hogy mit és mikor takarít ki, ezért próbálnak maguk takarítani és optimalizálni. Az érdekes egyébként az, hogy ha az ember nem tödődik azzal, hogy optimalizáljon memóriafoglalásra a Java nyelvi szintjén, akkor alig tud olyan helyzetet előállítani, ami memleak jelenséggel jár.
--
http://wiki.javaforum.hu/display/FREEBSD