class MyClass{
public static int a_static;
public static void M_sattic(){}; private int a_intance;
public void M_Intance(){};
} // 这是类的定义
//生成两对象
MyClass myclass1=new MyClass(); MyClass myclass2=new MyClass();
问题1:
堆栈中有两个引用myclass1,myclass2. 在托管堆中有两个对象 我知道它们分配了a_intance变量的 ,那M_intace()方法呢?是不是只有存储了一个函数指指了?; 如果是的话,.net 类库的有些类有20到30个实例方法 ,要是生成对象的话,那启不是要包括20到30个函数指针,不占空间吗?(但我用到的只有几个方法呀)
问题2
静态变量a_static 在内存中分配在什么地方? 什么时候 释放它?
public static int a_static;
public static void M_sattic(){}; private int a_intance;
public void M_Intance(){};
} // 这是类的定义
//生成两对象
MyClass myclass1=new MyClass(); MyClass myclass2=new MyClass();
问题1:
堆栈中有两个引用myclass1,myclass2. 在托管堆中有两个对象 我知道它们分配了a_intance变量的 ,那M_intace()方法呢?是不是只有存储了一个函数指指了?; 如果是的话,.net 类库的有些类有20到30个实例方法 ,要是生成对象的话,那启不是要包括20到30个函数指针,不占空间吗?(但我用到的只有几个方法呀)
问题2
静态变量a_static 在内存中分配在什么地方? 什么时候 释放它?
在棧里,甚麼時候銷毀它我不知道.
问题1:2個引用指向兩個方法,而靜態方法壓在棧里,非靜態的在託管堆.
那启不是要包括20到30个函数指针,不占空间吗?
未被引用的方法被CLR託管.