类方法所需的资源

时间:2012-08-24 03:06:39

标签: c# class memory

  

可能重复:
  Does having lots of methods on a class increase the overhead of that class's object?

如果我有课:

public class Example
{
   int someInt1 = 0;
   ..
   int someInt10 = 0;

   string somestring1 = "1111";
   ...
   string somestring10 = "10101010";

   public Method1()
   {
      // do stuff
   }

   public Method2()
   {
      // do stuff
   }

   ...

   public Method10()
   {
     // do stuff
   }
}

我有以下内容:

Example Ex1 = new Example();
Example Ex2 = new Example();
...
Example Ex10 = new Example10();

我很清楚,需要为每个类中的10个int和10个字符串中的每一个分配资源。堆栈上的Int,堆栈上的字符串指针,引用堆(或者我相信)。

我很好奇这个课程中包含的方法。由于这是编译的,只有一组资源(我猜的内存)用于方法,然后这将在类'Example'的所有实例之间共享,或者每个实例都会为方法代码咀嚼内存?

2 个答案:

答案 0 :(得分:0)

每个Example实例的成本是32位系统上的4个指针+ 2个int = 24个字节。字符串是共享的(多次引用)。

答案 1 :(得分:0)

在Java中,只存储一个类中每个方法的一个副本,并且所有实例化的对象都可以使用该副本