黑马程序员技术交流社区
标题:
堆内存与栈内存的区别总结!
[打印本页]
作者:
SenGoo
时间:
2014-10-22 16:15
标题:
堆内存与栈内存的区别总结!
①(堆)是一个可动态申请的内存空间,一般所有创建的对象都放在这里。
(栈)是一个先进后出的数据结构,通常用于保存方法(函数)中的参数,局部变量。
(栈)的空间小,但速度比较快,存放对象的引用,通过栈中的地址索引可以找到 堆中的对象。
②栈(java stacks )也是线程私有的,它的生命周期与线程相同。
虚拟机栈描述的是java方法执行的内存模型:每个方法被执行的时候都会同时创建一个栈用于存储局部变量表、操
作栈、动态链接、方法出口等信息。每一个方法被调用直至执行完成的过程,就对应着一个
栈帧在虚拟机栈中从入栈到出栈的过程。
堆(java Heap )是java 虚拟机所管理的内存中最大的一块。Java 堆是被所有线程共享的
一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,
几乎所有的对象实例都在这里分配内存。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2