1.不同的内存区域
堆内存是不同于栈区、全局数据区、代码区的另一个内存区域。堆允许程序在运行时动态申请给定大小的内存空间。一些基本类型的变量和引用变量在函数的堆栈内存中分配给函数中定义的对象。
2.各种属性
堆内存实际上指的是优先级队列的一种数据结构。栈内存实际上是一种满足先进后进性质的数学结构或数据结构。栈内存访问速度比堆速度快,仅次于寄存器,并且栈数据可以共享。
3.范围不同
堆内存中分配的内存必须由程序员手动释放内存管理器不会自动释放,如果回收这些内存并动态分配堆内存,就会总是被占用。该变量的内存空间在堆栈内存中分配。当超出变量的作用域时,Java会自动释放分配给该变量的内存空间,该内存空间可以立即用于其他用途。
参考来源:-堆内存
参考来源:-栈内存
上一篇:栈内存与堆内存的区别
下一篇:运行内存是ram还是rom