有这么个题目,大家帮我看看
在下列函数结束后,马上从内存中清除的是_________.
void Test()
{
int i = 100;
int[] arr = new int[10];
string str = "this is a test";
object r = new System.DateTime(1999,9,9);
}
A. 变量i
B. 数组变量arr
C. 变量str 所引用的字符串对象
D. 变量r 所引用的DataTime 对象
正确答案:A、B
在下列函数结束后,马上从内存中清除的是_________.
void Test()
{
int i = 100;
int[] arr = new int[10];
string str = "this is a test";
object r = new System.DateTime(1999,9,9);
}
A. 变量i
B. 数组变量arr
C. 变量str 所引用的字符串对象
D. 变量r 所引用的DataTime 对象
正确答案:A、B
arr是个数组对象,是引用类型。选它的原因,我认为是虽然在堆上分配了空间,但是CLR足够的聪明,知道没有使用数组中的任何一个元素,所以arr会被释放掉
{
private int _v0;
private int _v1;
private int _v2; ...... private int _v9;
}_Array _a = new _Array();int[] a = new int[10];a的效率要比_a的效率要好。