JVM内存模型之堆栈

堆heap与栈stack职责

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

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

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

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

猜你喜欢

转载自www.cnblogs.com/lhl-shubiao/p/12011335.html