JVM中堆与栈的区别

物理地址方面

中对象的物理地址分配是不连续的,因此性能较慢于栈,并且在 GC(Garbage Collection)时也需要考虑这些不连续的内存,因此才会需要各种算法,例如:标记-清除、标记-复制、标记-整理等算法。
就是使用的数据结构中的栈结构,遵循先进后出的原则,栈的物理地址分配是连续的,所以性能较快。

内存分配方面

因为分配的地址不是连续的,所以内存分配需要在运行期间确认,所以分配的内存大小不确定,一般堆大小远远大于栈。
分配的地址是连续的,因此分配的内存在编译期间就需要确认,大小是固定的。

存放的内容方面

中存放的是对象的实例数组,该区域只关注数据的存储;
中存放的局部变量、操作数栈、动态链接、方法返回地址,该区域更关注程序方法的执行。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值