浅谈内存开辟(c#学习日志)补2013 12 17
2013-12-21 16:34
204 查看
今天就这个问题搜索了一些资料了解了下。发表下自己的观点。
程序的完成少不了各种变量的声明。但是这些变量如何在内存中保存的?
这里我们需要去了解一下内存的某些机制。堆栈, 静态存储区,方法表,
当我们int i时,计算机就会在内存中开辟一个合适大小的控件去准备存储 用户需要存储的数据。
当我们使用i=1;时这个内存中就会存储这个1到这个i变量的空间去。由于所存储的是属于值类型数据,计算机就存储到内存的栈中。方便计算机快速搜索。
其次除了值类型数据,还有引用类型数据,
那引用类型数据又是如何存放的?
首先我们需要有一个类Dog。
然后声明
Dog dog;这个时候就会在内存中的栈中声明一个变量dog;他的变量值为null。(栈中的数据为小数据,方便搜索的数据,,,,,,,,自己的理解有错误可以纠正哈)
当程序员使用:dog=new Dog()的时候这是new运算符会去内存的堆中开辟一块合适大小的空间去存储Dog类的所有字段,和方法指针。而这个方法指针所指向的位置就是方法表中的所对应的方法。
相关文章推荐
- 【2015/11/1】C学习日志_Day11&12 数据类型 指针 内存对齐 函数指针
- 2012- 04-17 C#基础学习笔记(12)
- C#学习日志(12)
- Java学习日志(12-1-多线程中锁的等待与唤醒)
- CUDA学习日志:常量内存和纹理内存
- Java学习日志(12-2-多线程相关操作)
- mpi学习日志(12):mpi4py与需要buf的大写版本函数
- 浅谈C#内存回收与Dispose﹐Close﹐Finalize方法[转]
- C#学习日志(1)
- 黑马程序员——学习日志12高新技术(上)
- C# interface学习经验浅谈
- Linux学习日志--共享内存
- C#学习总结:可能是近期最后一篇技术日志了
- C#基础学习日志===>数组<===
- 变量内存开辟空间简单原理 11-12
- Android 学习 豆瓣学习 sd卡缓存 内存缓存 下拉刷新 日志编辑等
- CUDA学习日志:常量内存和纹理内存
- C#学习日志(1)
- 设计模式学习日志(12)-Flyweight享元(结构型模式)
- Android学习日志12__四大组件03__BroadcastReceiver