操作系统和“运行时”通常将用于容纳数据的内存划分为两个独立的区域,每个区域都以不同方式管理。这两个区域通常称为栈和堆。栈和堆的设计目标完全不同。
while(...)
{
int i = ...;//这时i在栈上创建
...
}
//这时i就从栈中消失了
使用 new 关键字创建对象时,构造对象所需的内存总是从堆中获取。
所有值类型都在栈上创建,所有引用类型的实例(对象)都在堆上创建,可空类型实际是引用类型,所以在堆上创建。
操作系统和“运行时”通常将用于容纳数据的内存划分为两个独立的区域,每个区域都以不同方式管理。这两个区域通常称为栈和堆。栈和堆的设计目标完全不同。
while(...)
{
int i = ...;//这时i在栈上创建
...
}
//这时i就从栈中消失了
使用 new 关键字创建对象时,构造对象所需的内存总是从堆中获取。
所有值类型都在栈上创建,所有引用类型的实例(对象)都在堆上创建,可空类型实际是引用类型,所以在堆上创建。