浅谈内存开辟(c#学习日志)补2013 12 17

 

总所周知,我们在visual studio 中能声明各种变量  int  ,bool,double 和类变量。但是他们如何在内存中去开辟我们却知晓的很少。

今天就这个问题搜索了一些资料了解了下。发表下自己的观点。

程序的完成少不了各种变量的声明。但是这些变量如何在内存中保存的?

这里我们需要去了解一下内存的某些机制。堆栈, 静态存储区,方法表,

当我们int i时,计算机就会在内存中开辟一个合适大小的控件去准备存储 用户需要存储的数据。

当我们使用i=1;时这个内存中就会存储这个1到这个i变量的空间去。由于所存储的是属于值类型数据,计算机就存储到内存的栈中。方便计算机快速搜索。

其次除了值类型数据,还有引用类型数据,

那引用类型数据又是如何存放的?

首先我们需要有一个类Dog。

然后声明

Dog dog;这个时候就会在内存中的栈中声明一个变量dog;他的变量值为null。(栈中的数据为小数据,方便搜索的数据,,,,,,,,自己的理解有错误可以纠正哈)

当程序员使用:dog=new Dog()的时候这是new运算符会去内存的堆中开辟一块合适大小的空间去存储Dog类的所有字段,和方法指针。而这个方法指针所指向的位置就是方法表中的所对应的方法。

转载于:https://www.cnblogs.com/ttkuuk/p/3485250.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值