在说这个之前,我们要先明白:程序占用三种类型的内存:静态内存、栈内存、堆内存;
静态内存:
用来保存局部static对象、类static数据成员以及定义在任何函数之外的变量 。
栈内存:
用来保存定义在函数内的非static对象。
分配在静态内存或栈内存中的对象由编译器自动创建和销毁。
对于栈对象,仅在其定义的程序块运行时才存在;
static对象在使用之前分配,在程序结束时销毁。
堆内存:
在程序运行时分配。动态对象的生存周期由程序(用户)来控制。
在说这个之前,我们要先明白:程序占用三种类型的内存:静态内存、栈内存、堆内存;
静态内存:
用来保存局部static对象、类static数据成员以及定义在任何函数之外的变量 。
栈内存:
用来保存定义在函数内的非static对象。
分配在静态内存或栈内存中的对象由编译器自动创建和销毁。
对于栈对象,仅在其定义的程序块运行时才存在;
static对象在使用之前分配,在程序结束时销毁。
堆内存:
在程序运行时分配。动态对象的生存周期由程序(用户)来控制。