为了账号安全,请及时绑定邮箱和手机立即绑定

既然栈区的内存是自动管理的,那什么情况下需要使用堆区呢

既然栈区的内存是自动管理的,那什么情况下需要使用堆区呢,都使用堆区不好吗

正在回答

1 回答

这里要提到数据结构中栈和堆的区别,栈是一种线性数据结构,管理比较简单,后入先出,而堆是一种树形结构,在处理优先级事件上具有较大优势;栈中创建对象是由编译器为对象在栈空间中分配内存,函数执行结束即自动销毁,无法进行有效管理;而使用堆建立类对象,会在栈中保留指向该对象的指针,堆中通常保存程序运行时动态创建的对象,C++堆中存放的对象需要由程序员分配释放,它存在程序运行的整个生命期,直到程序结束由OS释放。而java中对象的创建默认是存放在堆中,也不需要程序员主动释放内存,会有GC垃圾回收机制进行释放

4 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之封装篇(上)
  • 参与学习       103410    人
  • 解答问题       701    个

封装--面向对象的基石,本教程力求帮助小伙伴们即学即会

进入课程

既然栈区的内存是自动管理的,那什么情况下需要使用堆区呢

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信