Nem, ez úgy működik, hogy megadod a max heap méretet. A java induláskor befoglal egy akkora címtartományt. Ha túlléped a programodban, akkor kapsz egy
out of memory exception-t, tehát pont a java fejlesztők azok, akik rá vannak kényszerítve arra, hogy figyeljenek arra, hogy a programjuk mennyi memóriát
használ.
Igen, pl. fragmentáció kompresszió, stb. de mint korábban mondtam, az egész előnye az, hogy ezt a sok mindent elrejti a fejlesztő elől, akinek a kódolással
kell foglalkoznia, nem azzal, hogy most adott objektumot hol hoz létre, hogy ad át, mit kezd a fragmentálódott memóriával, stb, stb.
Olvasnivaló pl. innen:
http://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/geninfo/diagnos…
http://www.oracle.com/technetwork/java/javase/memorymanagement-whitepap…