Nie ma jednego przydziału pamięci dla JVM. IIRC poprawnie obsługuje JVM firmy Sun i inną zarządzaną pamięć IBM. Jednak ogólnie sposób działania JVM polega na tym, że początkowo przydzieli on jedną część pamięci, segment ten będzie na tyle mały, że będzie mógł mieszkać w pamięci podręcznej procesorów, dzięki czemu dostęp do tego będzie niezwykle szybki.
Podczas gdy wewnątrz aplikacji tworzone są obiekty, obiekty będą pobierać pamięć z tego segmentu. Przyporządkowanie obiektu w obrębie segmentu jest po prostu arytmetyczną wskazówką.
Początkowo adres przesunięcia w segmencie świeżo wybijanym będzie wynosił zero. Pierwszy przydzielony obiekt będzie miał "adres" (właściwie przesunięcie w segmencie) równe zero. Po przydzieleniu obiektu menedżer pamięci będzie wiedział, jak duży jest obiekt, alokować tyle miejsca w segmencie (powiedzmy 16 bajtów), a następnie zwiększyć jego "adres przesunięcia" o tę wielkość, co oznacza, że przydzielanie pamięci jest oślepiająco szybkie, to tylko wskaźnik arytmetyka.
Sun posiada whitepaper tutaj http://java.sun.com/j2se/reference/whitepapers/memorymanagement_whitepaper.pdf i IBM używane mieć kilka rzeczy na ibm.com/developerworks
Typowym JVM będzie używać tylko system operacyjny, aby dodać dodatkową pamięć na stercie. W większości przypadków wykorzystuje to, co już zostało. –