Где Java-интерфейсы находятся в памяти? Они находятся в куче или в стеке, или, может быть, в глобальной памяти? Я думаю, что они в стеке, так как они созданы во время компиляции. Я прав?
Определения классов - включая интерфейсы и абстрактные классы - хранятся в пространстве PermGen, что означает, что они никогда не будут собираться мусором. PermGen, iirc, является частью кучи.
Технически интерфейсы не "создаются" в том смысле, что создается обычный экземпляр класса, но информация о классе хранится в пространстве java permgen. См. http://blogs.oracle.com/jonthecollector/entry/presenting_the_permanent_generation для получения дополнительной информации о permgen и разнице между экземпляром класса и информацией о классе.
Определения классов (включая интерфейсы и т. Д.) Хранятся в куче (обычно в постоянном поколении, поскольку их время жизни велико). Если ClassLoader, создавший их, является сборщиком мусора, то они также могут быть использованы для сбора мусора.
ClassLoader