专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

函数中定义的对象是在栈中还是在堆中_java

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/7 1:13:16       共计:3593 浏览

函数中定义的对象是在栈中还是在堆中?

首先说明这里的堆和栈不等同于数据结构中堆和栈的概念。这里的堆和栈都是内存中的一部分,有着不同的作用,而且一个程序需要在这片区域上分配内存。

1 栈内存(stack)

栈是用来存储函数内部(包括main函数)的局部变量和方法调用和函数参数值,是由系统自动分配的,一般速度较快;存储地址是连续且存在有限栈容量,会出现溢出现象。

2 堆内存(heap)

堆是由corder手动分配释放的,通过malloc和new等动态申请内存的语句使用,也需要用户手动回收(或可能在程序结束时OS自动回收),而对于面向对象程序来说,new出来的任何对象,无论是对象内部的成员变量,局部变量,类变量,他们指向的对象都存储在堆内存中(但指针本身存在栈中),一般速度较栈慢;存储地址通常是链式的,内存较大不会溢出。

个人的理解,有错希望大牛指出,谢谢。

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:ensp论文摘要_java | ·下一条:初中学历程序员怎么进大厂_java

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有