专注Java教育14年 全国咨询/投诉热线:444-1124-454
赢咖4LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 堆栈平衡原理

堆栈平衡原理

更新时间:2021-08-23 12:03:40 来源:赢咖4 浏览1174次

在iOS、android操作系统中,经常会遇到入栈出栈的操作。 那么现在操作系统已经不需要我们去关心堆栈的操作。

比如:iOS中的ARC模式,android中的JVM都会帮我们自动释放内存,自动保持堆栈平衡。但是对于开发者来说,还是很有必要掌握堆栈平衡原理的。

那么让我们来详细讨论下iOS的栈平衡。

首先,我们要明白什么情况下的代码,会进行出栈入栈的操作。

以Objective-C语法为例:

重点:

一个非常简单的加法运算,声明了几个局部变量。而局部变量a、b、c,在栈空间可用的情况下,通常存在栈空间。只要这个函数执行完毕,a、b、c这三个变量就会出栈,即内存销毁。

我们所做的iOS程序用的都是高级语言,那么想运行在手机或者电脑上就要经过编译链接。

如:高级语言->汇编语言->机器语言

既然高级语言要编译成汇编语言,那么我们利用8086汇编,看底层是如何实现栈平衡的。

汇编代码:

上面的代码是“没有进行栈空间释放”的,即只入栈不出栈。

看看执行效果如何:

栈针在0710:0014

这表示未出栈,程序不结束的情况下,会一直占用栈空间。

我们修改下汇编代码,看看正常的入栈出栈:

看下运行效果

释放栈空间之前

释放之后,栈针回到原来的状态,正常入栈出栈

总结:有入必有出,才能保证栈空间的正常。

以上就是赢咖4小编介绍的"堆栈平衡原理",希望对大家有帮助,想了解更多可查看Java堆栈。赢咖4在线学习教程,针对没有任何Java基础的读者学习,让你从入门到精通,主要介绍了一些Java基础的核心知识,让同学们更好更方便的学习和了解Java编程,感兴趣的同学可以关注一下。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>