JVM内存模型之堆栈

隐身守侯 提交于 2019-12-09 16:10:57

堆heap与栈stack职责

Heap和Stack都是用来在RAM中存放数据的地方,Java自动管理堆和栈,程序员无法干预

栈内存:方法中的一基本类型变量和对象的应用变量都在栈内存中分配
栈的优势:存取速度比堆要快,仅次于直接位于CPU中的寄存器
缺点:存在栈中的数据大小与生存期必须时确定的,不灵活;栈数据在多个线程或者多个栈之间是不可以共享的

堆内存:一般new出来的数组,对象之类都是堆内存分配的。
堆的优势:在于和动态分配内存大小,生存期也不必事先告诉编译器;缺点是要在运行时动态分配内存,存取速度较慢

 

 

 

Java内存区域中比较重要的几个部分:程序计数器,栈,堆,方法区,它们都定义在被称作运行时数据去的区域中
其中程序计数器与栈是随县城启动而生,县城结束而灭亡的,也就属于线程私有。而堆和法方区是由JVM启动时创建且被所有线程共享的。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!