حافظه ای که توسط JVM برای اجرای یک برنامه جاوا اشغال می شود به سه قسمت تقسیم می شود:
-
حافظه Heap
-
حافظه غیر Heap یا Non-Heap
-
حافظه مربوط به خود JVM
حافظه Heap فضای ذخیره سازی مربوط به اشیاء جاوا و آرایه ها است که در زمان اجرای برنامه ایجاد می شوند، وقتی JVM شروع به کار می کند فقط حافظه های مربوط به خود JVM و Non-Heap تخصیص داده می شود و JVM یک فضای اولیه برای حافظه Heap در نظر می گیرد که می توان این مقدار را با استفاده از پارامتر -Xms مشخص کرد، در صورتی که JVM نیاز به فضای حافظه Heap بیشتری داشته باشد، JVM بصورت خودکار حافظه Heap را افزایش می دهد و می تواند آن را تا مقدار maximum مورد نظر بالا ببرد. بصورت پیش فرض این مقدار maximum برابر 64 Mb است ولی می توان با استفاده از پارامتر -Xmx آن را تغییر داد.
عملیات معروف garbage collection نیز برروی حافظه Heap انجام می شود.