堆内与堆外的区别?

什么是堆内?什么是堆外?

堆内一般指堆内内存,英文全称:on-heap memory

参考:https://baike.baidu.com/item/%E5%A0%86%E5%86%85%E5%AD%98/7270805?fr=aladdin

堆外一般指堆外内存,英文全称:off-heap memory

堆内内存与堆外内存是干什么的?

堆内内存=年轻代+老年代+持久代(1.8之前叫永久代其实一样)

针对java来讲堆内内存是我们经常用到,当java虚拟机分配非空对象一般就放到堆内内存,并且虚拟机会定期会进行回收。当然有某个固定的时间点虚拟机会进行一次彻底的回收(full gc)。由于堆内内存每次GC的代价是根据堆内内存越大则影响越大,所以通过堆外内存来解决该问题。

堆外内存=物理机内存

而堆外内存指的是java虚拟机堆以外的内存,这个区域是受操作系统管理,而不是jvm。

堆外内存优点

减少jvm垃圾回收

加快数据复制的速度

参考文章:

https://bbs.huaweicloud.com/blogs/182907

http://www.xuetimes.com/archives/1337

https://www.cnblogs.com/ronnieyuan/p/11718536.html

http://blog.chinaunix.net/uid-23860671-id-150568.html

https://www.cnblogs.com/candlia/p/11920170.html

https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html#jvms-2.5.3

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值