黑马程序员技术交流社区

标题: 堆内存与栈内存的区别总结! [打印本页]

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






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2