专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

jvm元空间与堆和栈的区别_java

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/5 16:42:14       共计:3588 浏览

jvm元空间与堆和栈的区别?

1内存分配策略

1)静态存储:编译时确定每个数据目标在运行时的存储空间需求(代码中无可变数据结构无嵌套递归)。

2)栈式存储:数据需求在编译时未知,运行时模块入口确定,动态分配存储,在运行中进入一个程序模块时,必须知道该程序模块所需要的数据区的大小才能分派其内存。

3)堆式存储:编译时和运行时模块入口无法确定,动态分配。

2Java内存模型中的堆与栈

1)二者联系:引用对象、数组时栈里定义的变量保存的是堆中目标的首地址。

2)二者区别:

(1)管理方式:栈自动释放(对应方法执行完毕),堆需要GC(垃圾回收机制)

(2)空间大小:堆比栈大。

(3)碎片:栈产生的碎片远小于堆产生的碎片。

(4)分配方式:栈支持静态和动态分配,堆只能动态分配。

(5)效率:堆比栈的效率低。

(6)栈为线程私有,堆为线程共享。

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:OPPO手机怎么设置显示的日期格式_java | ·下一条:手机滑动验证码滑不动怎么办_java

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有