总所周知,我们在visual studio 中能声明各种变量 int ,bool,double 和类变量。但是他们如何在内存中去开辟我们却知晓的很少。
今天就这个问题搜索了一些资料了解了下。发表下自己的观点。
程序的完成少不了各种变量的声明。但是这些变量如何在内存中保存的?
这里我们需要去了解一下内存的某些机制。堆栈, 静态存储区,方法表,
当我们int i时,计算机就会在内存中开辟一个合适大小的控件去准备存储 用户需要存储的数据。
当我们使用i=1;时这个内存中就会存储这个1到这个i变量的空间去。由于所存储的是属于值类型数据,计算机就存储到内存的栈中。方便计算机快速搜索。
其次除了值类型数据,还有引用类型数据,
那引用类型数据又是如何存放的?
首先我们需要有一个类Dog。
然后声明
Dog dog;这个时候就会在内存中的栈中声明一个变量dog;他的变量值为null。(栈中的数据为小数据,方便搜索的数据,,,,,,,,自己的理解有错误可以纠正哈)
当程序员使用:dog=new Dog()的时候这是new运算符会去内存的堆中开辟一块合适大小的空间去存储Dog类的所有字段,和方法指针。而这个方法指针所指向的位置就是方法表中的所对应的方法。