Where are methods stored in memory?

后端 未结 2 1036
滥情空心
滥情空心 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 13:54

    Class methods are stored together with all code in a dedicated segment of program memory meant specifically for storing code. Each method's code is stored once.

    0 讨论(0)
  • 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".

    0 讨论(0)
提交回复
热议问题