博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
堆和栈的区别
阅读量:3973 次
发布时间:2019-05-24

本文共 279 字,大约阅读时间需要 1 分钟。

1、申请方式不同。

  • 栈由系统自动分配。
  • 堆是自己申请和释放的。

2、申请大小限制不同。

  • 栈顶和栈底是之前预设好的,栈是向栈底扩展,大小固定,可以通过ulimit -a查看,由ulimit -s修改。
  • 堆向高地址扩展,是不连续的内存区域,大小可以灵活调整。

3、申请效率不同。

  • 栈由系统分配,速度快,不会有碎片。
  • 堆由程序员分配,速度慢,且会有碎片。
  • 栈会比堆快很多。因为操作系统会在底层对栈提供支持,会分配专门的寄存器存放栈的地址,栈的入栈出栈操作也十分简单,并且有专门的指令执行,所以栈的效率比较高也比较快。

栈空间默认是4M,堆区-般是1G-4G

在这里插入图片描述

转载地址:http://ietki.baihongyu.com/

你可能感兴趣的文章
log4j入门教程
查看>>
JDK1.6官方下载_JDK6官方下载地址:http://www.java.net/download
查看>>
Web app root system property already set to different value 的解决办法
查看>>
MyEclipse开发中遇到的错误(连载)
查看>>
一个http请求的详细过程
查看>>
AJAX和XMLHTTP原理
查看>>
TCP三次握手/四次挥手详解
查看>>
Http和Socket连接区别
查看>>
TCP/IP协议
查看>>
Java基础:三步学会Java Socket编程
查看>>
HTTP详解
查看>>
Java套接字(Socket)
查看>>
乱码问题总结
查看>>
五种基本的过滤器
查看>>
Flex入门教程
查看>>
Eclipse Birt的相关问题
查看>>
SSH框架中向数据库存取图片
查看>>
birt在Spring中的集成
查看>>
js原型理解
查看>>
JQuery工作原理
查看>>