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

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


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

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

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

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

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

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

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

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

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

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

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

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

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









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值