申请方式不同:
栈由系统自动分配。 堆是程序员自己申请和释放的。
申请大小限制不同:
栈顶和栈底是之前预设好的,栈是向栈底扩展,栈向下,向低地址方向增长,大小固定,可以通过ulimit -a查看,由ulimit -s修改。
堆向高地址扩展,是不连续的内存区域,大小可以灵活调整。
申请效率不同:
栈由系统分配,速度快,不会有碎片。
堆由程序员分配,速度慢,且会有碎片。
申请方式不同:
栈由系统自动分配。 堆是程序员自己申请和释放的。
申请大小限制不同:
栈顶和栈底是之前预设好的,栈是向栈底扩展,栈向下,向低地址方向增长,大小固定,可以通过ulimit -a查看,由ulimit -s修改。
堆向高地址扩展,是不连续的内存区域,大小可以灵活调整。
申请效率不同:
栈由系统分配,速度快,不会有碎片。
堆由程序员分配,速度慢,且会有碎片。