黑马程序员-java内存分配的策略

来源:互联网 发布:软件测试招聘南京 编辑:程序博客网 时间:2024/06/05 06:33

------- android培训、java培训、期待与您交流! ----------


按照编译原理的观点,程序运行时的内存分配有三种

策略,分别是静态的,栈式的,和堆式的.

静态存储分配是指在编译好似就能确定每个数据目标在运行时刻的存储空间需求,

这种分配策略要求程序代码中不允许有可变数据结构(比如 可变数组)的存在,也不允许有嵌套

或者递归的结构出现,因为它们都会到孩子编译程序无法计算准确的存储空间需求;

栈式存储分配也称为动态存储分配,是由一个而类似与堆栈

运行栈来实现的,和静态存储分配相反,在栈式存储方案中,程序对数据区的需求是完全未知的.

只有到运行的时候才能够知道,但是规定在运行中进入一个程序模块时,必须知道该程序

模块所需的数据区大小才能够为其分配内存,和我们在数据结构所

熟知的栈一样,栈式存储分配按照先进后出的原则进行分配;

堆式存储分配则专门负责在编译是或运行时模块入口处都无法确定存储要求

的数据结构的内存分配,比如可变长度和对象 实例,

堆由大片的可利用块或空闲块组成,堆中的内存可以按照任意顺序分配和释放;









0 0
原创粉丝点击