Where are methods stored in memory?

后端 未结 2 1049
滥情空心
滥情空心 2020-12-04 13:18

I learned that class fields are stored in the heap, but where are methods stored? In the heap or somewhere else? are they inline?

2条回答
  •  暖寄归人
    2020-12-04 14:13

    Methods are stored somewhere else in the memory. Notice that methods are per-class, not per-instance. So typically, the number of methods doesn't change over the run-time of a program (there are exceptions). In traditional models, the place where the methods live is called the "code segment". In .net, it's more difficult: the methods originally live in the assembly, and get mapped into the process memory. There, the just-in-time compiler creates a second copy of some methods in native code; this copy gets executed. The JIT code may get created and deleted several times during the runtime, so it is practical to view it also as living "in Heap".

提交回复
热议问题