Это зависит от того, о какой Java вы говорите
" макет памяти областей данных времени выполнения , используемый алгоритм сбора мусора и любая внутренняя оптимизацияинструкций виртуальной машины Java (например, переводя их в машинный код) оставьте на усмотрение разработчика. "
См. JVM spec .
Тем не менее, Sun Java имеет раздел памяти, называемый постоянное поколение , который включает в себя определения классов.Из-за своего первоначального намерения (относительно небольшая область для в основном статических классов) постоянное поколение не всегда хорошо сочетается с динамическими языками, предназначенными для JVM.См. это обсуждение проблем JRuby.Это является частью мотивации проекта Da Vinci Machine , целью которого является улучшение поддержки виртуальных машин для таких языков.