Подтвердить что ты не робот

Где хранятся методы в памяти?

Я узнал, что поля классов хранятся в куче, но где хранятся методы? В куче или где-то еще? они встроены?

4b9b3361

Ответ 1

Методы хранятся где-то еще в памяти. Обратите внимание, что методы относятся к классу, а не к экземпляру. Как правило, количество методов не изменяется во время выполнения программы (есть исключения). В традиционных моделях место, где живут методы, называется "сегментом кода". В .net это сложнее: методы изначально живут в сборке и попадают в память процесса. Там компилятор "точно в момент времени" создает вторую копию некоторых методов в собственном коде; эта копия выполняется. Код JIT может создаваться и удаляться несколько раз во время выполнения, поэтому его также можно рассматривать как живое "в куче".

Ответ 2

Методы класса хранятся вместе со всем кодом в выделенном сегменте программной памяти, предназначенном специально для хранения кода. Каждый код метода сохраняется один раз.