美文网首页
堆与栈的区别

堆与栈的区别

作者: 后山野鹤 | 来源:发表于2020-04-07 22:55 被阅读0次

    一、基本概念

    堆:FIFO 先入先出,JVM只有一个堆区,被所有的线程所共享!堆存放在二级缓存中,调用对象的速度相对慢一些,生命周期由虚拟机的垃圾回收机制管理。

    栈:先入后出,暂存数据的地方,每个线程都包含一个栈区,栈区存放在一级缓存中,存取速度较快,栈是限定仅在表头进行插入和删除操作的线性表。

    二、生成方式

    堆:通过new方法生成的对象和数组

    栈:通过存储基本类型变量和对象的引用变量的地址

    三、优缺点

    堆的优点:可以动态的分配内存大小,生命周期不确定

    堆的缺点:速度略慢

    栈的优点:速度快

    栈的缺点:存在栈中的数据大小和生命周期必须是明确的,缺少灵活性

    相关文章

      网友评论

          本文标题:堆与栈的区别

          本文链接:https://www.haomeiwen.com/subject/mnuguctx.html