(以C#为例)方法在内存中是如何存储的? 10
我们都知道像普通的值类型变量是将变量的值存放在内存中的堆栈,变量指向存储地址,但是像一个对象的方法即不是具有具体值的变量,又没有什么实际的值,就是一些纯操作,它在内存中如...
我们都知道像普通的值类型变量是将变量的值存放在内存中的堆栈,变量指向存储地址,但是像一个对象的方法即不是具有具体值的变量,又没有什么实际的值,就是一些纯操作,它在内存中如何表示的呢?
展开
2个回答
展开全部
个int属性会内联存在堆上,内联的意思就是对象的值类型属性直接存储在堆上,就是在堆上直接开一个32bit的空间.说到这好像也没太大区别,但是和对象的存储比较一下就清楚了.
如果有个对象的属性和一个值类型的属性:
classA
{
int v1;
classB v2;
}
那么实例化classA的对象时,v1那个位置直接存一个32位int数
v2那个地方存的是在堆上另一个对象的位置,相当于一个32位指针.
static类型是程序加载时就分配内存的.
普通类型是需要时才分配.
static类型是整个类公用的,所有该类的实例共享的都是同一个变量
另外不需要实例化一个类型,就可以以 类名.成员 的方式访问静态成员
如果有个对象的属性和一个值类型的属性:
classA
{
int v1;
classB v2;
}
那么实例化classA的对象时,v1那个位置直接存一个32位int数
v2那个地方存的是在堆上另一个对象的位置,相当于一个32位指针.
static类型是程序加载时就分配内存的.
普通类型是需要时才分配.
static类型是整个类公用的,所有该类的实例共享的都是同一个变量
另外不需要实例化一个类型,就可以以 类名.成员 的方式访问静态成员
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询